不说转码不转码了,纯讨论题目

头文字D
楼主 (北美华人网)
题目:一棵Balanced Tree, 满足以下条件,树的每一个节点都是一个素数,从根节点开始,每一层的每个节点的素数都是上一层的所有素数的两倍以上,而每一层的同层素数满足从左到右依次增大。设计一套最优算法判断对于任何一棵Balanced Tree, 以上条件是否满足,并写出算法的time complexity。
d
dngdnhxqs
题目是让你判断一棵树是不是满足条件,是一颗平衡树?
头文字D
题目是让你判断一棵树是不是满足条件,是一颗平衡树?
dngdnhxqs 发表于 2022-07-22 15:53

判断既是平衡树,也满足关于以上素数的所有条件
C
ChristinaW
被人盗号了?
m
me2me2
题目:一棵Balanced Tree, 满足以下条件,树的每一个节点都是一个素数,从根节点开始,每一层的每个节点的素数都是上一层的所有素数的两倍以上,而每一层的同层素数满足从左到右依次增大。设计一套最优算法判断对于任何一棵Balanced Tree, 以上条件是否满足,并写出算法的time complexity。
头文字D 发表于 2022-07-22 15:51

这是easy题吧?没让你手写红黑树算给你机会了
头文字D
被人盗号了?
ChristinaW 发表于 2022-07-22 15:54

没有啊,转码一直是我的理想,过去半年,我自学了Python 我要搬去加州,找你踢球
头文字D
这是easy题吧?没让你手写红黑树算给你机会了
me2me2 发表于 2022-07-22 15:55

所以time complexity 是什么?我回来之后,还是百思不得其姐
c
crazyeater
看了三遍没看懂题目,我默默回去读书了。
C
Cumberbitch
题目:一棵Balanced Tree, 满足以下条件,树的每一个节点都是一个素数,从根节点开始,每一层的每个节点的素数都是上一层的所有素数的两倍以上,而每一层的同层素数满足从左到右依次增大。设计一套最优算法判断对于任何一棵Balanced Tree, 以上条件是否满足,并写出算法的time complexity。
头文字D 发表于 2022-07-22 15:51

你没准备任何算法就去转码了?
头文字D
看了三遍没看懂题目,我默默回去读书了。
crazyeater 发表于 2022-07-22 15:57

对我们这种文科生来说,转码太难了,你要加油,我也要加油
H
Heiniu
D哥有戏。最近结了不少善缘,华人上马工姐妹不少,我看你找对路了!
头文字D
D哥有戏。最近结了不少善缘,华人上马工姐妹不少,我看你找对路了!
Heiniu 发表于 2022-07-22 16:00

唉,难说,我上次和潮水哥提了一下,希望他内推,结果自从那次之后,潮水哥再也没找过我说话了
h
hhxx89
Nlogn
C
ChristinaW
所以time complexity 是什么?我回来之后,还是百思不得其姐
头文字D 发表于 2022-07-22 15:56

o(logn)
头文字D
o(logn)
ChristinaW 发表于 2022-07-22 16:02

你和楼上的答案就不一样,我该信谁?
a
alexlulu
所以time complexity 是什么?我回来之后,还是百思不得其姐
头文字D 发表于 2022-07-22 15:56

time complexity是计算你写的算法的runtime,有些固定的算法的
x
xiaofengxian
对我们这种文科生来说,转码太难了,你要加油,我也要加油
头文字D 发表于 2022-07-22 15:58

你不是中科大的吗?难道我弄错了?
头文字D
你不是中科大的吗?难道我弄错了?
xiaofengxian 发表于 2022-07-22 16:06

当然是你搞错,LOL,就我这高中花了90%时间去打球和谈恋爱的,我要考到中科大,我神仙了
C
ChristinaW
你和楼上的答案就不一样,我该信谁?
头文字D 发表于 2022-07-22 16:03

我觉得o(n)太容易了,所以觉得应该是logn, 怎么做还没想出来~~
m
miaka
easy题。科班出身Data Structure上完就能写。能不能15分钟写完是另一回事。 如果你是CS相关专业的话确实挺丢人。
孤傲招财猫
这是easy题吧?没让你手写红黑树算给你机会了
me2me2 发表于 2022-07-22 15:55

我只在学校学过红黑树,之后再也没见过。别吓人
头文字D
我觉得o(n)太容易了,所以觉得应该是logn, 怎么做还没想出来~~
ChristinaW 发表于 2022-07-22 16:09

这里面有几个tricks, 我回家后做了一下研究,我发现光判断素数这里就有几种不同的方法,而每种方法的时间复杂度也是不一样的,给你参考一下
https://blog.csdn.net/huang_miao_xin/article/details/51331710
孤傲招财猫
这不是瞎耽误功夫
H
Heiniu
唉,难说,我上次和潮水哥提了一下,希望他内推,结果自从那次之后,潮水哥再也没找过我说话了
头文字D 发表于 2022-07-22 16:01

哦,男人比较没义气 尤其你那楚留香的人设定位估计不受男人待见
e
elee555
这题感觉就是一个基本的数学题,不是很难的一道数学题,知道思路怎么做,虽然我不会写码。看来码工还是要有好的数学基础,很基础的数学知识
g
giver2021
题目都看不懂😂
R
RedCrayon
以为你在加州
头文字D
回复 24楼Heiniu的帖子
开玩笑的,没找潮水哥内推过,但潮水哥这段时间比较忙,所以我和他老男人时间见面得比较少
g
gokgs
应该 是 O(N), 用个 queue, 典型的 BFS with slight modification.
素数应该是 assume 不用判断了, 否则, 加起来 15 分钟有点难度。 FB 也不会这么要求。
H
Hesterhql
这次丢脸不怕, 学会了下次面试会show就行,谁知道你面了多少次。
H
Heiniu
老实说你这个楼要转码是joke吗?
g
gokgs
我只在学校学过红黑树,之后再也没见过。别吓人
孤傲招财猫 发表于 2022-07-22 16:12

没听说过有人考红黑树。 哈哈。
头文字D
应该 是 O(N), 用个 queue, 典型的 BFS with slight modification.
素数应该是 assume 不用判断了, 否则, 加起来 15 分钟有点难度。 FB 也不会这么要求。
gokgs 发表于 2022-07-22 16:31

素数不是assume的, 要判断是否是素数,否则你放素数的要求没意义啊,如果只考树的结构,放任何数还不是一样
g
gokgs
这题感觉就是一个基本的数学题,不是很难的一道数学题,知道思路怎么做,虽然我不会写码。看来码工还是要有好的数学基础,很基础的数学知识
elee555 发表于 2022-07-22 16:15

我敢打赌考点肯定不是素数上。
m
miaka
回复 1楼的帖子
看了你的回复不是码农科版。那你去上个data structure 在上个algorithm就可以了。 这个是判断true/fasle,所以worst case用recursion要全过一遍。再看看每次call yourself时候要比较几次。blanaced tree应该是sorted了吧?概念记不清了。但根据题目要求还要比较每层大小就不能assume是sorted的。 每个recursion input parent node保证他有children 1.先看是不是sorted满足left《parent〈 right. 2.然后比大小 判断是不是素数 and 是不是大于两倍 parent worst case是true的情况你自己数数要call几次recursion,每次1-2情况要比较次数是不是和N有关。判断素数是O(N)/ O(square(N))
所以只要数recursion的次数乘以O(N)就是和node number(N) 的关系。
d
doge2moon
题目:一棵Balanced Tree, 满足以下条件,树的每一个节点都是一个素数,从根节点开始,每一层的每个节点的素数都是上一层的所有素数的两倍以上,而每一层的同层素数满足从左到右依次增大。设计一套最优算法判断对于任何一棵Balanced Tree, 以上条件是否满足,并写出算法的time complexity。
头文字D 发表于 2022-07-22 15:51

BFS?
g
gokgs
素数不是assume的, 要判断是否是素数,否则你放素数的要求没意义啊,如果只考树的结构,放任何数还不是一样
头文字D 发表于 2022-07-22 16:33

光判断素数 15 分钟也不一定够。
s
somuch
一直以为杠精在LF
O
Ok2021
当然是你搞错,LOL,就我这高中花了90%时间去打球和谈恋爱的,我要考到中科大,我神仙了
头文字D 发表于 2022-07-22 16:08

哈哈哈哈 我一看你就是玩儿咖 不过我学生时代也是 最后毕业好累的😆
g
gvcc
就是考平衡二叉树+素数判定的算法
头文字D
回复 35楼miaka的帖子
left < parent < right 不对哦
left and right both must be > 2x parent
m
miaka
光判断素数 15 分钟也不一定够。
gokgs 发表于 2022-07-22 16:39


为什么?不就是几个condition加一个iteration?prime不就是找找除了1和它本身,有没有能被除得整数的。
m
miaka
回复 41楼的帖子
我看题不仔细。那就是按你写的要求比较大小。一回事。 改成left< right and left > 2parent and right > 2 parent
你好歹也弄个比较大小啊。也不至于交白卷
l
lvk
回复 1楼头文字D的帖子
看了俩遍没看懂,我只好去编码去了。
g
gvcc
回复 42楼miaka的帖子
确实,素数判定很简单,几行code
if (n == 0 || n == 1) {   is_prime = false;  }
for (i = 2; i <= n/2; ++i) {   if (n % i == 0) {    is_prime = false;    break;   } }
S
Shangshang111
你不是faculty 吗?还是我记错了?
如果你是cs 的faculty 那不算“转码”。如果是别的专业的,费那劲干嘛呀?
头文字D
BFS?
doge2moon 发表于 2022-07-22 16:38

应该用的是BFS,因为要按每层来判断,我觉得还要另外加一个array 储存上一层的节点,还是有更好的方法?

update: 不用另外的array, 如果h > 2g, 则 h 必然大于 g 左边的所有节点的2倍,因为每一层从左到右依次增大
m
mannbo
你天天在华人上泡着,转码惨交白卷不是很正常吗。
孤傲招财猫
我也说个丢脸的事儿吧:刚看D哥的帖子,说素数,我突然感觉脑子一片空白,素数是个啥?我能老年痴呆了。直到看到楼上是prime number,我才敢说话(这个我知道)😂
g
gokgs
回复 42楼miaka的帖子
确实,素数判定很简单,几行code
if (n == 0 || n == 1) {   is_prime = false;  }
for (i = 2; i <= n/2; ++i) {   if (n % i == 0) {    is_prime = false;    break;   } }
gvcc 发表于 2022-07-22 16:54

你起码要写个 上限是平方根的,哈哈。
数多了, 筛子法可能更好, 还有可能 cache 之类的, 稍微一讨论 15 分钟就没了。 所以我觉得这题考点应该是 BFS 的变种。
m
miaka
应该用的是BFS,因为要按每层来判断,我觉得还要另外加一个array 储存上一层的节点,还是有更好的方法?

update: 不用另外的array, 如果h > 2g, 则 h 必然大于 g 左边的所有节点的2倍
头文字D 发表于 2022-07-22 16:59

你这就不考虑memory/space complexity了?一个easy题你search啥。
g
gokgs
应该用的是BFS,因为要按每层来判断,我觉得还要另外加一个array 储存上一层的节点,还是有更好的方法?

update: 不用另外的array, 如果h > 2g, 则 h 必然大于 g 左边的所有节点的2倍,因为每一层从左到右依次增大
头文字D 发表于 2022-07-22 16:59

BFS 用 queue 阿, 外加一个变量存 max so far and the first value in each level 就应该差不多了。
h
helloterran3
题目:一棵Balanced Tree, 满足以下条件,树的每一个节点都是一个素数,从根节点开始,每一层的每个节点的素数都是上一层的所有素数的两倍以上,而每一层的同层素数满足从左到右依次增大。设计一套最优算法判断对于任何一棵Balanced Tree, 以上条件是否满足,并写出算法的time complexity。
头文字D 发表于 2022-07-22 15:51

balanced binary tree吧。lz如果知道complete binary tree可以分层用数组表示,这题很容易做
老实说这种不难但是就是把几个基础概念混在一起吓人的题目,就是用来劝退你们这些转码人士的
头文字D
BFS 用 queue 阿, 外加一个变量存 max so far and the first value in each level 就应该差不多了。
gokgs 发表于 2022-07-22 17:05

不需要额外变量,每一层从左到右判断大小,然后拐弯到下一层的时候判断是否大于2倍
h
helloterran3
你和楼上的答案就不一样,我该信谁?
头文字D 发表于 2022-07-22 16:03

那个id明显不懂
题目要求判断每个元素是否满足要求,这怎么可能是log(n)
k
kitty2
悬赏米其林大餐吧, 让美女内推你
m
miaka
BFS 用 queue 阿, 外加一个变量存 max so far and the first value in each level 就应该差不多了。
gokgs 发表于 2022-07-22 17:05

queue有什么好用的。就用simple array好了。面试能用STL吗?
m
miaka
你起码要写个 上限是平方根的,哈哈。
数多了, 筛子法可能更好, 还有可能 cache 之类的, 稍微一讨论 15 分钟就没了。 所以我觉得这题考点应该是 BFS 的变种。
gokgs 发表于 2022-07-22 17:04


熟练工肯定一提笔就是perfect解。LZ这样的15分钟能写多少写多少。挑基本简单的方法,写完bug free再考虑优化
g
gokgs
queue有什么好用的。就用simple array好了。面试能用STL吗?
miaka 发表于 2022-07-22 17:17

你还没面试过吧? 连 queue 都不用, 典型的 red flag.
m
miaka
你还没面试过吧? 连 queue 都不用, 典型的 red flag.
gokgs 发表于 2022-07-22 20:24



我又不是码农我不需要面试啊。我又不穷也不需要转码。 我上学时候写作业是不许用STL的。什么都自己写。但可以用time计算algorithm时间写结论。给用STL那码农面试还是挺好的。
b
banned
没想到华人上的技术水平这么低。。
冰雪奇缘
先后序遍历是否是平衡二叉树,然后层次遍历每层节点是否满足要求
D
DS的LV
赞硬核D哥👍,学习了
D
DS的LV
没有啊,转码一直是我的理想,过去半年,我自学了Python 我要搬去加州,找你踢球
头文字D 发表于 2022-07-22 15:55

ChristinaW 是男银 ??