avatar
请教个面试题# JobHunting - 待字闺中
c*p
1
given a binary tree, output it max sum of nodes. But the nodes should be
not adjacent to each other. In other word, if you use the root, you cannot
use its children because children and root are adjacent.
哪位大侠上段代码?
avatar
a*9
2
左右孩子算adj么?
avatar
c*p
3
左右不是adj。只有parent和它的left, right是 adj

【在 a********9 的大作中提到】
: 左右孩子算adj么?
avatar
p*2
4
有没有例子?
avatar
c*p
5
没啊,朋友的面试题,
我一看,好难啊。。。

【在 p*****2 的大作中提到】
: 有没有例子?
avatar
a*m
6
dp
hashmap, int> mem;
int CalcMax(Node *node, bool flag) {
if (!node) return 0;
if (!mem.exist(node, flag)) {
if (flag) {
mem[node, flag] = CalcMax(node->left, false) + CalcMax(node->left,
false);
} else {
mem[node, flag] = max(CalcMax(node->left, false) + CalcMax(node->left,
false),
CalcMax(node->left, true) + CalcMax(node->left, true) +
node->value);
}
}
return mem[node, flag];
}
avatar
e*8
7
这个就和那个maximum independent set on a tree的问题差不多吧。
dp
avatar
c*p
8
啊?请问那个是哪道题啊?
我也没看过你说的那个题。。。
能给个link么?

【在 e*******8 的大作中提到】
: 这个就和那个maximum independent set on a tree的问题差不多吧。
: dp

avatar
c*p
11
虫子,我觉得这段代码写的好像不对呀。。。

left,

【在 a********m 的大作中提到】
: dp
: hashmap, int> mem;
: int CalcMax(Node *node, bool flag) {
: if (!node) return 0;
: if (!mem.exist(node, flag)) {
: if (flag) {
: mem[node, flag] = CalcMax(node->left, false) + CalcMax(node->left,
: false);
: } else {
: mem[node, flag] = max(CalcMax(node->left, false) + CalcMax(node->left,

avatar
e*8
13
没有吧。书上只是要求size最大的(例子里那个tree,最大的independent set最多只
能有3个结点),不是结点的value之和最大的。每个结点的数字只是个id而已。
不过原理是一样的。

【在 c********p 的大作中提到】
: 书写错了吧,那个例子,应该是2,4,6, 不是2, 3, 6吧?
avatar
c*p
14
Size指的是什么

【在 e*******8 的大作中提到】
: 没有吧。书上只是要求size最大的(例子里那个tree,最大的independent set最多只
: 能有3个结点),不是结点的value之和最大的。每个结点的数字只是个id而已。
: 不过原理是一样的。

avatar
e*8
15
size就是结点集合的大小。书里的那个例子有好几个最优解(因为最优解不一定是唯一
的,比如{1,4,6},{2,3,6},{2,4,6}的大小都是3,所以都是
最优解)。不过如果用dp的话,自然只会找出一个,具体找出哪一个,看你怎么写第归
公式了。这题只是要找出集合的大小,所以只会返回3;但是如果是要找出最优解里具
体的每个结点,按书里的那个第归公式,就会返回{6,2,4}。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。