由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 发个pure storage的interviewstreet题目
相关主题
如何删除 linked list 的最后一个元素 (转载)leetcode populating next pointer 2
请问大牛们如何提高解决leetcode上面Linkedlist的题的能力?合并两个排序好的链表, 优解?
M家 onsite 悲剧,同胞们弄死烙印吧谁能帮我看下insertion sort list这道题吗?
请教大牛: Leetcode partition list: Time Limit Exceeded请问大牛们Leetcode Reorder List 中找中间节点怎么能现场想清楚?多谢!
Leetcode swap Paris 这个怎么改进?Leetcode 问题:remove Nth FromEnd 有一点儿不懂,謝謝指点!
【我自己写的LinkedList为什么总有错?】删除node从list, 这个有内存泄露么,怎么释放内存,对于那个被删除的节点?
LeetCode:Partition List 哪位帮我看看, 为什么总是TLEgoogle面试全过程(简装版)
大牛们帮忙,Rverse Nodes in k-Groupcopy link with random additional pointers
相关话题的讨论汇总
话题: next话题: list话题: linkedlist话题: prev话题: val
进入JobHunting版参与讨论
1 (共1页)
m********c
发帖数: 105
1
上周末做了pure storage的interviewstreet的题目,总共两道题,30分钟,今天晚
上就收到了拒信,下面是题目。
第一题是Remove all elements from a linked list of integers that have value N
,就是要实现下面的函数
void removeNode(int val, LinkedList **list)。
题目不算难,但是我刚看到pointer to pointer 一下子没想出来怎么做,想了半天,
最后写出来了,test cases5个过了3个,另外两个后来想了想是估计是因为处理修改
list的时候出错。下面是我写的代码。
void removeNode(int val, LinkedList **list) {
LinkedList *prev = *list;
while (prev && prev->val == val)
prev = prev->next;
// 估计是这里出错了,提交的代码里是 list = &prev,这算修改了list,不是
修改了*list
*list = prev;

if (*list == NULL)
return;
LinkedList *next = prev->next;
while (next) {
if (next->val == val)
prev->next = next->next;
else
prev = next;

next = next->next;
}
}
第二道题目是说要在一个有序数组里,找到所有之差为D的两个元素。给了一个学生实
现的函数,但是他的代码有bug,让你找出错误,并改正。我的代码test cases5个全过
。我觉得这个题目应该是很简单,没有什么trick。
p****U
发帖数: 109
2
请问lz之前还做了10道选择题的online test么?
s*****n
发帖数: 994
3
void removeNode(int val, LinkedList **list){
LinkedList* dummy = new LinkedList(0);
dummy->next = *list;
LinkedList* current = dummy;
while (current){
if (current->next){
if (current->next = val){
current->next = current->next->next;
}else{
current = current->next;
}
}else{
current = current->next;
}
}
*list = dummy->next;
delete dummy;
}

直没
N

【在 m********c 的大作中提到】
: 上周末做了pure storage的interviewstreet的题目,总共两道题,30分钟,今天晚
: 上就收到了拒信,下面是题目。
: 第一题是Remove all elements from a linked list of integers that have value N
: ,就是要实现下面的函数
: void removeNode(int val, LinkedList **list)。
: 题目不算难,但是我刚看到pointer to pointer 一下子没想出来怎么做,想了半天,
: 最后写出来了,test cases5个过了3个,另外两个后来想了想是估计是因为处理修改
: list的时候出错。下面是我写的代码。
: void removeNode(int val, LinkedList **list) {
: LinkedList *prev = *list;

p****U
发帖数: 109
4
如果他要用双指针做参数, 还是用double pointer吧, 用 dummy head的话,感觉会
让interviewer 觉得理解指针不够透彻。
void removeNode(int val, ListNode **list) {
while(*list!=NULL){
if((*list)->val==val){
ListNode *next=(*list)->next;
delete *list;
*list=next;
}
else {
list=&(*list)->next;
}
}
}
s*******s
发帖数: 103
5
跟我做的一模一样,不过我是用C写的。
没有C++...
前面还是10题简单题:
比如, 我想一个0到1000的数,只能回答你yes/no,用什么策略可以找到这个数,并且
猜的次数的worse case最小?最小值多少少。
其他忘了。
m********c
发帖数: 105
6
做了,我上网搜了搜,都是GRE的CS的题。。

【在 p****U 的大作中提到】
: 请问lz之前还做了10道选择题的online test么?
m********c
发帖数: 105
7
看到你的觉得自己写的确实不怎么地。。。
另外像这种情况需要在函数里面delete那些node吗?

【在 p****U 的大作中提到】
: 如果他要用双指针做参数, 还是用double pointer吧, 用 dummy head的话,感觉会
: 让interviewer 觉得理解指针不够透彻。
: void removeNode(int val, ListNode **list) {
: while(*list!=NULL){
: if((*list)->val==val){
: ListNode *next=(*list)->next;
: delete *list;
: *list=next;
: }
: else {

b**********5
发帖数: 7881
8
你还是多练练题吧。 这种题, 做对了, 再去面FB

直没
N

【在 m********c 的大作中提到】
: 上周末做了pure storage的interviewstreet的题目,总共两道题,30分钟,今天晚
: 上就收到了拒信,下面是题目。
: 第一题是Remove all elements from a linked list of integers that have value N
: ,就是要实现下面的函数
: void removeNode(int val, LinkedList **list)。
: 题目不算难,但是我刚看到pointer to pointer 一下子没想出来怎么做,想了半天,
: 最后写出来了,test cases5个过了3个,另外两个后来想了想是估计是因为处理修改
: list的时候出错。下面是我写的代码。
: void removeNode(int val, LinkedList **list) {
: LinkedList *prev = *list;

p****U
发帖数: 109
9
感觉他的test case 测试不到哈。 不delete没关系。 我上上周做的10道题现在,都没
消息。请问lz等了多久让做这个题的?

【在 m********c 的大作中提到】
: 看到你的觉得自己写的确实不怎么地。。。
: 另外像这种情况需要在函数里面delete那些node吗?

s*****n
发帖数: 994
10
这个有连起来吗?

【在 p****U 的大作中提到】
: 如果他要用双指针做参数, 还是用double pointer吧, 用 dummy head的话,感觉会
: 让interviewer 觉得理解指针不够透彻。
: void removeNode(int val, ListNode **list) {
: while(*list!=NULL){
: if((*list)->val==val){
: ListNode *next=(*list)->next;
: delete *list;
: *list=next;
: }
: else {

相关主题
【我自己写的LinkedList为什么总有错?】leetcode populating next pointer 2
LeetCode:Partition List 哪位帮我看看, 为什么总是TLE合并两个排序好的链表, 优解?
大牛们帮忙,Rverse Nodes in k-Group谁能帮我看下insertion sort list这道题吗?
进入JobHunting版参与讨论
m********c
发帖数: 105
11
我做了题以后,过了一周多没理我,我发邮件问了HR,然后HR说正在准备这个新题了,
然后又过了一个星期给我发过来的,上周四发过来的,不行你发邮件follow up一下

【在 p****U 的大作中提到】
: 感觉他的test case 测试不到哈。 不delete没关系。 我上上周做的10道题现在,都没
: 消息。请问lz等了多久让做这个题的?

s***e
发帖数: 403
12
说实话这些题目不难。
如果这样的题目都做不到你估计过不了onsite的。
m********c
发帖数: 105
13
上周末做了pure storage的interviewstreet的题目,总共两道题,30分钟,今天晚
上就收到了拒信,下面是题目。
第一题是Remove all elements from a linked list of integers that have value N
,就是要实现下面的函数
void removeNode(int val, LinkedList **list)。
题目不算难,但是我刚看到pointer to pointer 一下子没想出来怎么做,想了半天,
最后写出来了,test cases5个过了3个,另外两个后来想了想是估计是因为处理修改
list的时候出错。下面是我写的代码。
void removeNode(int val, LinkedList **list) {
LinkedList *prev = *list;
while (prev && prev->val == val)
prev = prev->next;
// 估计是这里出错了,提交的代码里是 list = &prev,这算修改了list,不是
修改了*list
*list = prev;

if (*list == NULL)
return;
LinkedList *next = prev->next;
while (next) {
if (next->val == val)
prev->next = next->next;
else
prev = next;

next = next->next;
}
}
第二道题目是说要在一个有序数组里,找到所有之差为D的两个元素。给了一个学生实
现的函数,但是他的代码有bug,让你找出错误,并改正。我的代码test cases5个全过
。我觉得这个题目应该是很简单,没有什么trick。
p****U
发帖数: 109
14
请问lz之前还做了10道选择题的online test么?
s*****n
发帖数: 994
15
void removeNode(int val, LinkedList **list){
LinkedList* dummy = new LinkedList(0);
dummy->next = *list;
LinkedList* current = dummy;
while (current){
if (current->next){
if (current->next = val){
current->next = current->next->next;
}else{
current = current->next;
}
}else{
current = current->next;
}
}
*list = dummy->next;
delete dummy;
}

直没
N

【在 m********c 的大作中提到】
: 上周末做了pure storage的interviewstreet的题目,总共两道题,30分钟,今天晚
: 上就收到了拒信,下面是题目。
: 第一题是Remove all elements from a linked list of integers that have value N
: ,就是要实现下面的函数
: void removeNode(int val, LinkedList **list)。
: 题目不算难,但是我刚看到pointer to pointer 一下子没想出来怎么做,想了半天,
: 最后写出来了,test cases5个过了3个,另外两个后来想了想是估计是因为处理修改
: list的时候出错。下面是我写的代码。
: void removeNode(int val, LinkedList **list) {
: LinkedList *prev = *list;

p****U
发帖数: 109
16
如果他要用双指针做参数, 还是用double pointer吧, 用 dummy head的话,感觉会
让interviewer 觉得理解指针不够透彻。
void removeNode(int val, ListNode **list) {
while(*list!=NULL){
if((*list)->val==val){
ListNode *next=(*list)->next;
delete *list;
*list=next;
}
else {
list=&(*list)->next;
}
}
}
s*******s
发帖数: 103
17
跟我做的一模一样,不过我是用C写的。
没有C++...
前面还是10题简单题:
比如, 我想一个0到1000的数,只能回答你yes/no,用什么策略可以找到这个数,并且
猜的次数的worse case最小?最小值多少少。
其他忘了。
m********c
发帖数: 105
18
做了,我上网搜了搜,都是GRE的CS的题。。

【在 p****U 的大作中提到】
: 请问lz之前还做了10道选择题的online test么?
m********c
发帖数: 105
19
看到你的觉得自己写的确实不怎么地。。。
另外像这种情况需要在函数里面delete那些node吗?

【在 p****U 的大作中提到】
: 如果他要用双指针做参数, 还是用double pointer吧, 用 dummy head的话,感觉会
: 让interviewer 觉得理解指针不够透彻。
: void removeNode(int val, ListNode **list) {
: while(*list!=NULL){
: if((*list)->val==val){
: ListNode *next=(*list)->next;
: delete *list;
: *list=next;
: }
: else {

b**********5
发帖数: 7881
20
你还是多练练题吧。 这种题, 做对了, 再去面FB

直没
N

【在 m********c 的大作中提到】
: 上周末做了pure storage的interviewstreet的题目,总共两道题,30分钟,今天晚
: 上就收到了拒信,下面是题目。
: 第一题是Remove all elements from a linked list of integers that have value N
: ,就是要实现下面的函数
: void removeNode(int val, LinkedList **list)。
: 题目不算难,但是我刚看到pointer to pointer 一下子没想出来怎么做,想了半天,
: 最后写出来了,test cases5个过了3个,另外两个后来想了想是估计是因为处理修改
: list的时候出错。下面是我写的代码。
: void removeNode(int val, LinkedList **list) {
: LinkedList *prev = *list;

相关主题
请问大牛们Leetcode Reorder List 中找中间节点怎么能现场想清楚?多谢!google面试全过程(简装版)
Leetcode 问题:remove Nth FromEnd 有一点儿不懂,謝謝指点!copy link with random additional pointers
删除node从list, 这个有内存泄露么,怎么释放内存,对于那个被删除的节点?一到电面题
进入JobHunting版参与讨论
p****U
发帖数: 109
21
感觉他的test case 测试不到哈。 不delete没关系。 我上上周做的10道题现在,都没
消息。请问lz等了多久让做这个题的?

【在 m********c 的大作中提到】
: 看到你的觉得自己写的确实不怎么地。。。
: 另外像这种情况需要在函数里面delete那些node吗?

s*****n
发帖数: 994
22
这个有连起来吗?

【在 p****U 的大作中提到】
: 如果他要用双指针做参数, 还是用double pointer吧, 用 dummy head的话,感觉会
: 让interviewer 觉得理解指针不够透彻。
: void removeNode(int val, ListNode **list) {
: while(*list!=NULL){
: if((*list)->val==val){
: ListNode *next=(*list)->next;
: delete *list;
: *list=next;
: }
: else {

m********c
发帖数: 105
23
我做了题以后,过了一周多没理我,我发邮件问了HR,然后HR说正在准备这个新题了,
然后又过了一个星期给我发过来的,上周四发过来的,不行你发邮件follow up一下

【在 p****U 的大作中提到】
: 感觉他的test case 测试不到哈。 不delete没关系。 我上上周做的10道题现在,都没
: 消息。请问lz等了多久让做这个题的?

s***e
发帖数: 403
24
说实话这些题目不难。
如果这样的题目都做不到你估计过不了onsite的。
f********4
发帖数: 988
25
是啊,我也奇怪呢,这个没改pre的next ptr吧。

【在 s*****n 的大作中提到】
: 这个有连起来吗?
J****3
发帖数: 427
26
同楼上, 这个删除完了链表也没法再遍历了吧。还是pre, cur, post 这种方法删吧
F**********s
发帖数: 46
27
这个online test是让你填写代码还是要将输入输出都写好?
1 (共1页)
进入JobHunting版参与讨论
相关主题
copy link with random additional pointersLeetcode swap Paris 这个怎么改进?
一到电面题【我自己写的LinkedList为什么总有错?】
ms面试题目LeetCode:Partition List 哪位帮我看看, 为什么总是TLE
yelp 面经大牛们帮忙,Rverse Nodes in k-Group
如何删除 linked list 的最后一个元素 (转载)leetcode populating next pointer 2
请问大牛们如何提高解决leetcode上面Linkedlist的题的能力?合并两个排序好的链表, 优解?
M家 onsite 悲剧,同胞们弄死烙印吧谁能帮我看下insertion sort list这道题吗?
请教大牛: Leetcode partition list: Time Limit Exceeded请问大牛们Leetcode Reorder List 中找中间节点怎么能现场想清楚?多谢!
相关话题的讨论汇总
话题: next话题: list话题: linkedlist话题: prev话题: val