由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 两道题目
相关主题
问tree的iterative traversal[leetcode] Binary Tree from Inorder & Postorder Traversal
leetcode中的binary tree level order traverse II总是有run t请教一道Leetcode 题,多谢
再问个C++的基础问题(in order traversal)Print all the paths from root to every leaf 的 iterative
请大神进来看看为什么我的iterative preorder tranverse过不了,多谢如何判断两个BST的元素是一样的?
帮我看一下5行代码看着简单老是写不对的Binary Tree Zigzag Level Order Traversal
问一个cracking code interview上的问题啊大牛帮我看看这哪错了? iterative inorder traversal
问个算法题,修改版麻烦大家帮看看这段代码的问题
攒人品,amazon一面经历麻烦大家帮忙看一下求质数这段代码,求拍砖~
相关话题的讨论汇总
话题: int话题: vector话题: lastnode话题: root话题: return
进入JobHunting版参与讨论
1 (共1页)
g***j
发帖数: 1275
1
刚刚面的
1 给一个bst,返回第k大de元素
2 给一个set,比如1,2,3,返回所有的power set
都很简单,但是感觉要写对还很难。
请问谁提供一下解法?
s****0
发帖数: 117
2
1order traversal . better iterative .
2 count up. the 1 bits gives the power set

【在 g***j 的大作中提到】
: 刚刚面的
: 1 给一个bst,返回第k大de元素
: 2 给一个set,比如1,2,3,返回所有的power set
: 都很简单,但是感觉要写对还很难。
: 请问谁提供一下解法?

w****x
发帖数: 2483
3
”给一个bst,返回第k大de元素“
能不能自定义node结构? 可以的话每个node记录它作为根的树的节点个数, 然后二分
h*********o
发帖数: 230
4
返回所有的power set 是什么意思?
详细点?

【在 g***j 的大作中提到】
: 刚刚面的
: 1 给一个bst,返回第k大de元素
: 2 给一个set,比如1,2,3,返回所有的power set
: 都很简单,但是感觉要写对还很难。
: 请问谁提供一下解法?

l*******b
发帖数: 2586
5
clrs 上的order statistic tree ? 不过不需要做平衡。

【在 w****x 的大作中提到】
: ”给一个bst,返回第k大de元素“
: 能不能自定义node结构? 可以的话每个node记录它作为根的树的节点个数, 然后二分

d**********x
发帖数: 4083
6
这应该是后续问题吧。。

二分

【在 l*******b 的大作中提到】
: clrs 上的order statistic tree ? 不过不需要做平衡。
l*******b
发帖数: 2586
7
返回power set 吧,所有子集的集合。不是所有的power set

【在 h*********o 的大作中提到】
: 返回所有的power set 是什么意思?
: 详细点?

l*******b
发帖数: 2586
8
嗯,有道理

【在 d**********x 的大作中提到】
: 这应该是后续问题吧。。
:
: 二分

p*****2
发帖数: 21240
9
第一题难道不是traverse一遍就行了?
第二题就是subset问题?要考虑重复吗?
g***j
发帖数: 1275
10
第一题不用traverse 完吧?
第二题不考虑重复

【在 p*****2 的大作中提到】
: 第一题难道不是traverse一遍就行了?
: 第二题就是subset问题?要考虑重复吗?

相关主题
问一个cracking code interview上的问题啊[leetcode] Binary Tree from Inorder & Postorder Traversal
问个算法题,修改版请教一道Leetcode 题,多谢
攒人品,amazon一面经历Print all the paths from root to every leaf 的 iterative
进入JobHunting版参与讨论
g***j
发帖数: 1275
11
为什么better iterative?

【在 s****0 的大作中提到】
: 1order traversal . better iterative .
: 2 count up. the 1 bits gives the power set

p*****2
发帖数: 21240
12

嗯。最多一遍。碰到K就可以结束了。
第二题不考虑重复就更简单了。

【在 g***j 的大作中提到】
: 第一题不用traverse 完吧?
: 第二题不考虑重复

p*****2
发帖数: 21240
13
对了第二题是set,所以没有重复。
p*****2
发帖数: 21240
14
def dfs(arr, start, buf)
p buf if buf.length>0
(start...arr.length).each do |i|
buf< dfs(arr,i+1,buf)
buf.pop
end
end
def subset(arr)
buf=[]
dfs(arr,0,buf)
end
subset([1,2,3])
j*****y
发帖数: 1071
15
第一道题:
bool isKth(TreeNode * root, TreeNode* &lastNode, int & k, int K)
{
if(root->left)
{
if(isKth(root->left, lastNode, k, K)
{
return true;
}

}
++k;
lastNode = root;
if(k == K)
{
return true;
}
if(root->right)
{
if(isKth(root->right, lastNode, k, K))
{
return true;
}
}
return false;
}
第二道题:
vector > power(vector & v, int start)
{
vector > result;
if(start == v.size() - 1)
{
result.push_back(vector());
result.push_back(vector(1, v[start]));
return result;
}
vector > tmp = power(v, start + 1);
result = tmp;
for(int i = 0; i < tmp.size(); ++i)
{
vector to_insert = tmp[i];
to_insert.insert(to_insert.begin(), v[start]);
result.push_back(to_insert);
}
return result;
}

【在 g***j 的大作中提到】
: 刚刚面的
: 1 给一个bst,返回第k大de元素
: 2 给一个set,比如1,2,3,返回所有的power set
: 都很简单,但是感觉要写对还很难。
: 请问谁提供一下解法?

j*****y
发帖数: 1071
16
第二道题能用 count up的思路写个代码吗? 好学一下。一直用 recursive写,觉得不

professional.

【在 s****0 的大作中提到】
: 1order traversal . better iterative .
: 2 count up. the 1 bits gives the power set

s********l
发帖数: 998
17
不是找最大的kth吗?
你怎么先跑到左边去了呢?
inorder traversal 反过来就可以了把~

【在 j*****y 的大作中提到】
: 第一道题:
: bool isKth(TreeNode * root, TreeNode* &lastNode, int & k, int K)
: {
: if(root->left)
: {
: if(isKth(root->left, lastNode, k, K)
: {
: return true;
: }
:

l*****a
发帖数: 14598
18
生成如下序列,1的地方就是输出相应item
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

【在 j*****y 的大作中提到】
: 第二道题能用 count up的思路写个代码吗? 好学一下。一直用 recursive写,觉得不
: 太
: professional.

j*****y
发帖数: 1071
19
题目好像是说 第 k 大

【在 s********l 的大作中提到】
: 不是找最大的kth吗?
: 你怎么先跑到左边去了呢?
: inorder traversal 反过来就可以了把~

s********l
发帖数: 998
20
我是说这个意思
in order traverse 翻过来就好了呀~

【在 j*****y 的大作中提到】
: 题目好像是说 第 k 大
相关主题
如何判断两个BST的元素是一样的?麻烦大家帮看看这段代码的问题
看着简单老是写不对的Binary Tree Zigzag Level Order Traversal麻烦大家帮忙看一下求质数这段代码,求拍砖~
大牛帮我看看这哪错了? iterative inorder traversalGOOG ONSITE 面试
进入JobHunting版参与讨论
p*****2
发帖数: 21240
21

这种方法长度有限制。

【在 j*****y 的大作中提到】
: 第二道题能用 count up的思路写个代码吗? 好学一下。一直用 recursive写,觉得不
: 太
: professional.

l*****a
发帖数: 14598
22
用array ,not binary

【在 p*****2 的大作中提到】
:
: 这种方法长度有限制。

j*****y
发帖数: 1071
23
比如 in-order traversal 以后 是 1 2 3 4 5,
那 第 1大的元素是 1 还是 5 阿?
不过我的理解是 第 k 个元素,而不是第 k大个元素
可能我的理解不对。

【在 s********l 的大作中提到】
: 我是说这个意思
: in order traverse 翻过来就好了呀~

l*****a
发帖数: 14598
24
static void bstVisit(Node p_node, ref int n)
{
if (p_node == null || n < 0 ) return;
bstVisit(p_node.right, ref n);
n--;
if (n == 0) System.Console.WriteLine(p_node.Num);
bstVisit(p_node.left, ref n);
}

【在 s********l 的大作中提到】
: 我是说这个意思
: in order traverse 翻过来就好了呀~

s********l
发帖数: 998
25
我是说 in order 反过来
54321
第二大 就是4 其实 in order做到4的时候就可以停了

【在 j*****y 的大作中提到】
: 比如 in-order traversal 以后 是 1 2 3 4 5,
: 那 第 1大的元素是 1 还是 5 阿?
: 不过我的理解是 第 k 个元素,而不是第 k大个元素
: 可能我的理解不对。

s********l
发帖数: 998
26
i know you are showing off your java~

【在 l*****a 的大作中提到】
: static void bstVisit(Node p_node, ref int n)
: {
: if (p_node == null || n < 0 ) return;
: bstVisit(p_node.right, ref n);
: n--;
: if (n == 0) System.Console.WriteLine(p_node.Num);
: bstVisit(p_node.left, ref n);
: }

p*****2
发帖数: 21240
27

那跟直接生成比也没啥优势吧?

【在 l*****a 的大作中提到】
: 用array ,not binary
j*****y
发帖数: 1071
28
那可以这样写
bool isKth(TreeNode * root, TreeNode* &lastNode, int & k, int K)
{
if(root->right)
{
if(isKth(root->right, lastNode, k, K))
{
return true;
}
}
++k;
lastNode = root;
if(k == K)
{
return true;
}
if(root->left)
{
if(isKth(root->left, lastNode, k, K)
{
return true;
}

}
return false;
}

【在 s********l 的大作中提到】
: 我是说 in order 反过来
: 54321
: 第二大 就是4 其实 in order做到4的时候就可以停了

p*****2
发帖数: 21240
29

java 有 ref吗?

【在 s********l 的大作中提到】
: i know you are showing off your java~
s********l
发帖数: 998
30
这个看懂了
前面那个没看懂。。

【在 j*****y 的大作中提到】
: 那可以这样写
: bool isKth(TreeNode * root, TreeNode* &lastNode, int & k, int K)
: {
: if(root->right)
: {
: if(isKth(root->right, lastNode, k, K))
: {
: return true;
: }
: }

相关主题
讨论一道leetcode上面的题leetcode中的binary tree level order traverse II总是有run t
check if a binary tree is a valid binary search tree再问个C++的基础问题(in order traversal)
问tree的iterative traversal请大神进来看看为什么我的iterative preorder tranverse过不了,多谢
进入JobHunting版参与讨论
s********l
发帖数: 998
31
他会java 我不会。。。
besides, i'm kidding~

【在 p*****2 的大作中提到】
:
: java 有 ref吗?

j*****y
发帖数: 1071
32
前面那个是我理解错了意思了。我以为是找第 K 个元素。

【在 s********l 的大作中提到】
: 这个看懂了
: 前面那个没看懂。。

l*****a
发帖数: 14598
33
no,1) i copied from the others
2) that seems to be c#

【在 s********l 的大作中提到】
: i know you are showing off your java~
s********l
发帖数: 998
34
whatever~
you are showing off~ :P

【在 l*****a 的大作中提到】
: no,1) i copied from the others
: 2) that seems to be c#

j*****y
发帖数: 1071
35
你这个序列是根据什么规律生成的? 能给个 生成序列的code 吗? 多谢

【在 l*****a 的大作中提到】
: 生成如下序列,1的地方就是输出相应item
: 0000
: 0001
: 0010
: 0011
: 0100
: 0101
: 0110
: 0111
: 1000

l*****a
发帖数: 14598
36
二进制加法
或者去看一下PIE的相关题目

【在 j*****y 的大作中提到】
: 你这个序列是根据什么规律生成的? 能给个 生成序列的code 吗? 多谢
j*****y
发帖数: 1071
37
多谢,二进制加法明白了。pie里面有这道题,好像它不是用二进制加法实现的吧?

【在 l*****a 的大作中提到】
: 二进制加法
: 或者去看一下PIE的相关题目

s********l
发帖数: 998
38
pie里面哪个?

【在 l*****a 的大作中提到】
: 二进制加法
: 或者去看一下PIE的相关题目

l*******b
发帖数: 2586
39
试一下scala写的第一个程序。。。
val list = Array[Int](1,3,4,5,7,9)
def powerSet(l: Array[Int]) = {
def select(i: Int, n:Int) =
for(j <- 0 to n if((i & (1 << j)) != 0)) yield l(j)
val n = l.length - 1
val p = (1 << (n+1)) - 1
val power = for(i <- 0 to p) yield select(i,n).mkString(" ")
power.mkString("\n")
}

【在 j*****y 的大作中提到】
: 多谢,二进制加法明白了。pie里面有这道题,好像它不是用二进制加法实现的吧?
l*****a
发帖数: 14598
40
电话号码对应单词

【在 s********l 的大作中提到】
: pie里面哪个?
相关主题
请大神进来看看为什么我的iterative preorder tranverse过不了,多谢问个算法题,修改版
帮我看一下5行代码攒人品,amazon一面经历
问一个cracking code interview上的问题啊[leetcode] Binary Tree from Inorder & Postorder Traversal
进入JobHunting版参与讨论
l*****a
发帖数: 14598
41
基本相当于加1吧。

【在 j*****y 的大作中提到】
: 多谢,二进制加法明白了。pie里面有这道题,好像它不是用二进制加法实现的吧?
j*****y
发帖数: 1071
42
写了一个,确实简单多了.
class Solution {
public:
vector > subsets(vector &S) {
sort(S.begin(), S.end());
vector > result;
vector v(S.size(), false);
int i = 0;
while(true)
{
if(i == -1)
{
break;
}
vector tmp;
for(int j = 0; j < v.size(); ++j)
{
if(v[j])
{
tmp.push_back(S[j]);
}
}
result.push_back(tmp);
for(i = v.size() - 1; i > -1; --i)
{
if(v[i])
{
v[i] = false;
}
else
{
v[i] = true;
break;
}
}
}
return result;
}
};

【在 l*****a 的大作中提到】
: 用array ,not binary
j*****y
发帖数: 1071
43
也搞了一个数字有重复的 power set
class Solution {
public:
vector > subsetsWithDup(vector &S) {
sort(S.begin(), S.end());
vector denominator;
vector counter;
int i;
for(i = 0; i < S.size();)
{
denominator.push_back(S[i]);
int j = i;
while(j < S.size() && S[j] == S[i])
{
++j;
}
counter.push_back(j - i);
i = j;
}
vector > result;
vector v(denominator.size(), 0);
i = 0;
while(true)
{
if(i == -1)
{
break;
}
vector tmp;
for(int j = 0; j < v.size(); ++j)
{
for(int k = 1; k <= v[j]; ++k)
{
tmp.push_back(denominator[j]);
}
}
result.push_back(tmp);
for(i = denominator.size() - 1; i > -1; --i)
{
if(v[i] == counter[i])
{
v[i] = 0;
}
else
{
++v[i];
break;
}
}
}
return result;
}
};

【在 l*****a 的大作中提到】
: 用array ,not binary
c*******i
发帖数: 30
44


【在 g***j 的大作中提到】
: 刚刚面的
: 1 给一个bst,返回第k大de元素
: 2 给一个set,比如1,2,3,返回所有的power set
: 都很简单,但是感觉要写对还很难。
: 请问谁提供一下解法?

1 (共1页)
进入JobHunting版参与讨论
相关主题
麻烦大家帮忙看一下求质数这段代码,求拍砖~帮我看一下5行代码
GOOG ONSITE 面试问一个cracking code interview上的问题啊
讨论一道leetcode上面的题问个算法题,修改版
check if a binary tree is a valid binary search tree攒人品,amazon一面经历
问tree的iterative traversal[leetcode] Binary Tree from Inorder & Postorder Traversal
leetcode中的binary tree level order traverse II总是有run t请教一道Leetcode 题,多谢
再问个C++的基础问题(in order traversal)Print all the paths from root to every leaf 的 iterative
请大神进来看看为什么我的iterative preorder tranverse过不了,多谢如何判断两个BST的元素是一样的?
相关话题的讨论汇总
话题: int话题: vector话题: lastnode话题: root话题: return