B*u
2 楼
核心提示:美国《外交政策》预测2025年时,99座新城市有望跻身全世界最大600座城市
行列,其中72座来自中国。
由于欧美增长势头脆弱,世界经济均势正通过城市化进程以前所未有的速度和规模
由西方向东方转移。2025年最具活力城市排名榜出炉,其中40%的城市同属一个国家—
——中国。
从福州到武汉,许多是你闻所未闻的城市,但它们都是中国将引导21世纪城市革命
的见证。尽管到2025年时西方并未完全黯然失色———13座美国城市和仅3座欧洲城市
入围,但太阳的确正在西沉。
行列,其中72座来自中国。
由于欧美增长势头脆弱,世界经济均势正通过城市化进程以前所未有的速度和规模
由西方向东方转移。2025年最具活力城市排名榜出炉,其中40%的城市同属一个国家—
——中国。
从福州到武汉,许多是你闻所未闻的城市,但它们都是中国将引导21世纪城市革命
的见证。尽管到2025年时西方并未完全黯然失色———13座美国城市和仅3座欧洲城市
入围,但太阳的确正在西沉。
p*m
3 楼
树上掉下来那种坚果,总看松鼠在吃,不知道能不能吃啊
r*3
5 楼
我朝人口基数在那,不管干啥必须是规模第一的,春游人口流动也好农村人口城市化也好
l*t
6 楼
你可以尝尝,我尝过,味道有点苦
G*e
8 楼
我也就觉得我自己比较奇怪去尝那个,没想到还有别人也好奇这个。。。。
苦的。。。不好吃。至少咱跟松鼠的品位不同。。。
苦的。。。不好吃。至少咱跟松鼠的品位不同。。。
f*n
12 楼
恩,我以前被松鼠掉下来的核桃砸过,然后就很开心的每到季节就去捡核桃了~比超市
卖的小,但是香很多,甜而且不涩
卖的小,但是香很多,甜而且不涩
c*3
16 楼
想当年我们的祖先还在和他们抢着吃呢 嘿嘿嘿。。。。:)
d*a
18 楼
咱挖坑必须专业,啥叫坚果啊,有个名没有,没名也得有图啊。
r*e
23 楼
写了一个。弱问一句,初始ret的时候有些糊涂。一定要遍历的第一个?
TreeNode* get_random_node(TreeNode* root){
srand(time(NULL));
InOrderNextIterator it(root);
int cnt = 0;
int j = 0;
TreeNode* ret = root;//or一定要遍历的第一个?也就是in-order的最小?
TreeNode* cur = NULL;
while(it.has_next()){
cur = it.next();
cnt++;
j = rand()%cnt;
if(0 == j)
ret = cur;
}
return ret;
}
TreeNode* get_random_node(TreeNode* root){
srand(time(NULL));
InOrderNextIterator it(root);
int cnt = 0;
int j = 0;
TreeNode* ret = root;//or一定要遍历的第一个?也就是in-order的最小?
TreeNode* cur = NULL;
while(it.has_next()){
cur = it.next();
cnt++;
j = rand()%cnt;
if(0 == j)
ret = cur;
}
return ret;
}
l*b
26 楼
http://en.wikipedia.org/wiki/Reservoir_sampling
貌似就是前面说的这个reservoir sampling. 要遍历一遍整个树的
【在 b***m 的大作中提到】![](/moin_static193/solenoid/img/up.png)
:
: 俺愚钝呀,还是没看懂。
貌似就是前面说的这个reservoir sampling. 要遍历一遍整个树的
【在 b***m 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
:
: 俺愚钝呀,还是没看懂。
p*2
27 楼
InOrderNextIterator it(root);
你这是什么东西呢?
【在 r*****e 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 写了一个。弱问一句,初始ret的时候有些糊涂。一定要遍历的第一个?
: TreeNode* get_random_node(TreeNode* root){
: srand(time(NULL));
: InOrderNextIterator it(root);
: int cnt = 0;
: int j = 0;
: TreeNode* ret = root;//or一定要遍历的第一个?也就是in-order的最小?
: TreeNode* cur = NULL;
: while(it.has_next()){
: cur = it.next();
w*x
29 楼
这题不就是做烂了的那道google的无限输入流随机取数吗
l*a
33 楼
看看http://en.wikipedia.org/wiki/Reservoir_sampling
把它跟BT traverse结合起来
【在 b***m 的大作中提到】![](/moin_static193/solenoid/img/up.png)
:
: 不懂耶,我有够笨了吧。
把它跟BT traverse结合起来
【在 b***m 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
:
: 不懂耶,我有够笨了吧。
b*m
34 楼
能不能把你的思想写成函数?
b*m
37 楼
这个跟我想的不一样。为什么不能事先遍历一次树,把节点全部存在一个数组里,然后
随机取?否则岂不是每次都要遍历?
随机取?否则岂不是每次都要遍历?
d*g
41 楼
练习一个
class RandomNodeGetterInBinaryTree
{
private static int totalNumNodesSoFar = 0;
private static TreeNode result = new TreeNode();
public TreeNode GetRandomNodeInBinaryTree(TreeNode root)
{
PreOrderTraverse(root);
return result;
}
private void PreOrderTraverse(TreeNode node)
{
if(node == null) return;
ReservoirSampling(node);
PreOrderTraverse(node.left);
PreOrderTraverse(node.right);
}
private void ReservoirSampling(TreeNode node)
{
++totalNumNodesSoFar;
Random random = new Random();
int j = random.nextInt(totalNumNodesSoFar)+1;
if(j <= 1)
{
result = node;
}
}
}
class RandomNodeGetterInBinaryTree
{
private static int totalNumNodesSoFar = 0;
private static TreeNode result = new TreeNode();
public TreeNode GetRandomNodeInBinaryTree(TreeNode root)
{
PreOrderTraverse(root);
return result;
}
private void PreOrderTraverse(TreeNode node)
{
if(node == null) return;
ReservoirSampling(node);
PreOrderTraverse(node.left);
PreOrderTraverse(node.right);
}
private void ReservoirSampling(TreeNode node)
{
++totalNumNodesSoFar;
Random random = new Random();
int j = random.nextInt(totalNumNodesSoFar)+1;
if(j <= 1)
{
result = node;
}
}
}
相关阅读