由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 谷歌电面回馈
相关主题
一道linked list编程题感觉今天结结实实被烙印阴了
题目: iterative binary tree post order traversalleetcode上的Sort List那道题
reverse链表[BSSD]回国一趟回来做题很难进入状态了,顺便问下那个Merge k Sorted
请教一道单链表问题F家电面:group Anagrams
Leetcode Timeout一道Twitter面经题,求问我的答案对不对
leetcode populating next pointer 2Amazon二面
到底怎么了?很多面试来的居然连reverse一个链表都写不来请教一个phone interview 问题
Leetcode书中missing range一题的答案是不是错的?数组中找和为0的3个数,4个数
相关话题的讨论汇总
话题: int话题: string话题: prev话题: 99话题: else
进入JobHunting版参与讨论
1 (共1页)
o**********5
发帖数: 53
1
跪了。。。 但是深感必须回馈版面。。。
1。给个sorted array, 只包含不重复整数,数值范围在 [0,99]中间, 按格式打
印其余数值:
输入: [0,1,3,50,75]
输出: [2,4-49,51-74,76-99]
请写出程序,及 testing cases。
2。讨论题:手机上只有有限内存,请问何种格式更适合存储contact: hash-table 或
者 binary tree。
面试官建议: 选binary tree. 因为用户需要看到sorted的结果, 而hashtable需要
额外的空间进行sorting。binary tree的插入和寻找虽然更加耗时,但是因为手机用户
contact数目有限(比如一般不超过1,000或者5,000个),所以O(logN)可以接受.
-------------------------------------------
第一题答案一开始给错了, 应该是[...,51-74...]. 已更正
第一题中的, sorted 指 数值已进行排列,可能是为了简单省事吧,不用大家为了
sorting这方面费神了.
testing cases中至少要包含 NULL, full set, {1},{2},{98} 等等等等. 我当时忘了
空集了...
A*****i
发帖数: 3587
2
G家出这种弱智题是不是就是故意来挂人的?太特么不厚道了
y**********a
发帖数: 824
3
我就被问了第一题,然后让写了 test cases。
你还被问了第二个问题,看来还是很有希望的。
j*****8
发帖数: 3635
4
第一题52-73之间的数为啥不输出?

【在 o**********5 的大作中提到】
: 跪了。。。 但是深感必须回馈版面。。。
: 1。给个sorted array, 只包含不重复整数,数值范围在 [0,99]中间, 按格式打
: 印其余数值:
: 输入: [0,1,3,50,75]
: 输出: [2,4-49,51-74,76-99]
: 请写出程序,及 testing cases。
: 2。讨论题:手机上只有有限内存,请问何种格式更适合存储contact: hash-table 或
: 者 binary tree。
: 面试官建议: 选binary tree. 因为用户需要看到sorted的结果, 而hashtable需要
: 额外的空间进行sorting。binary tree的插入和寻找虽然更加耗时,但是因为手机用户

l*****a
发帖数: 14598
5
应该是51-74 :)

【在 j*****8 的大作中提到】
: 第一题52-73之间的数为啥不输出?
l*****a
发帖数: 14598
6
这个是SE还是SET?

【在 o**********5 的大作中提到】
: 跪了。。。 但是深感必须回馈版面。。。
: 1。给个sorted array, 只包含不重复整数,数值范围在 [0,99]中间, 按格式打
: 印其余数值:
: 输入: [0,1,3,50,75]
: 输出: [2,4-49,51-74,76-99]
: 请写出程序,及 testing cases。
: 2。讨论题:手机上只有有限内存,请问何种格式更适合存储contact: hash-table 或
: 者 binary tree。
: 面试官建议: 选binary tree. 因为用户需要看到sorted的结果, 而hashtable需要
: 额外的空间进行sorting。binary tree的插入和寻找虽然更加耗时,但是因为手机用户

j*****8
发帖数: 3635
7
狗狗的电面bar这么低了?。。
是国人面试官把?

【在 l*****a 的大作中提到】
: 应该是51-74 :)
l*****a
发帖数: 14598
8
这个写TC很见功力阿
既要cover all the path,又要没有冗余,不太容易把

【在 A*****i 的大作中提到】
: G家出这种弱智题是不是就是故意来挂人的?太特么不厚道了
A*****i
发帖数: 3587
9
这个test case貌似不难写吧,就那么几种情况而已。

【在 l*****a 的大作中提到】
: 这个写TC很见功力阿
: 既要cover all the path,又要没有冗余,不太容易把

w******e
发帖数: 1621
10
第二题 是只能从bst和hash中二选一么,要是不是,可不可以trie
相关主题
leetcode populating next pointer 2感觉今天结结实实被烙印阴了
到底怎么了?很多面试来的居然连reverse一个链表都写不来leetcode上的Sort List那道题
Leetcode书中missing range一题的答案是不是错的?[BSSD]回国一趟回来做题很难进入状态了,顺便问下那个Merge k Sorted
进入JobHunting版参与讨论
A*****i
发帖数: 3587
11
trie用来做检索比较好使比如T9输入法啥的,做电话本有些大材小用了,浪费空间。电
话本不需要太高的搜索效率而且不能占用太大空间。

【在 w******e 的大作中提到】
: 第二题 是只能从bst和hash中二选一么,要是不是,可不可以trie
l*****a
发帖数: 14598
12
你写写看,让大家挑挑毛病 :)

【在 A*****i 的大作中提到】
: 这个test case貌似不难写吧,就那么几种情况而已。
w******e
发帖数: 1621
13
能展开说说么,其实我不太理解 lz说的例子里的sorted的结果里sorted是什么意思。
还有就是电话本是只存number 还是要存 name-number pair.
如果要存name-num的pair,怎么用bst存string

【在 A*****i 的大作中提到】
: trie用来做检索比较好使比如T9输入法啥的,做电话本有些大材小用了,浪费空间。电
: 话本不需要太高的搜索效率而且不能占用太大空间。

A*****i
发帖数: 3587
14
[], null, [0...99], [0], [99]
剩下的就随机挑几个非0和非99的数放input里。
还有啥更拐角的case?

【在 l*****a 的大作中提到】
: 你写写看,让大家挑挑毛病 :)
A*****i
发帖数: 3587
15
node {
node left;
node right;
String name;
String number;
}

【在 w******e 的大作中提到】
: 能展开说说么,其实我不太理解 lz说的例子里的sorted的结果里sorted是什么意思。
: 还有就是电话本是只存number 还是要存 name-number pair.
: 如果要存name-num的pair,怎么用bst存string

l*****a
发帖数: 14598
16
只有一项得你会写几个TC?
现有的两个显然不够

【在 A*****i 的大作中提到】
: [], null, [0...99], [0], [99]
: 剩下的就随机挑几个非0和非99的数放input里。
: 还有啥更拐角的case?

A*****i
发帖数: 3587
17
那个不是包括在非99和非0的随机几个里面了么
我说的随机几个就是可以是一个,也可以是多个

【在 l*****a 的大作中提到】
: 只有一项得你会写几个TC?
: 现有的两个显然不够

l*****a
发帖数: 14598
18
我觉得如果只有一项的话
[0]
[1]
[2]
[**]
[97]
[98]
[99]
都得写
你觉得呢

【在 A*****i 的大作中提到】
: 那个不是包括在非99和非0的随机几个里面了么
: 我说的随机几个就是可以是一个,也可以是多个

A*****i
发帖数: 3587
19
俩星号是啥玩意?
另1和98可能需要,但是2和97没什么意义

【在 l*****a 的大作中提到】
: 我觉得如果只有一项的话
: [0]
: [1]
: [2]
: [**]
: [97]
: [98]
: [99]
: 都得写
: 你觉得呢

l*****a
发帖数: 14598
20
你code怎么写?
if(num[0]!=start) print(start,num[0]-1);
***
if(num[num.length-1]!=end) print(num[num.length-1]+1,end);
right?

【在 A*****i 的大作中提到】
: 俩星号是啥玩意?
: 另1和98可能需要,但是2和97没什么意义

相关主题
F家电面:group Anagrams请教一个phone interview 问题
一道Twitter面经题,求问我的答案对不对数组中找和为0的3个数,4个数
Amazon二面问几个有关Binary tree的题
进入JobHunting版参与讨论
A*****i
发帖数: 3587
21
哦,我第一反应是用另一个99长度(错了,应该是100)的array来做个bitmap
扫一遍input,有的把相应的置为1就行了,然后再扫一遍这个新bitmap,如果为0就把
index输出
你这个方法不用额外数组但是不够直观啊。拐角case要考虑好

【在 l*****a 的大作中提到】
: 你code怎么写?
: if(num[0]!=start) print(start,num[0]-1);
: ***
: if(num[num.length-1]!=end) print(num[num.length-1]+1,end);
: right?

l*****a
发帖数: 14598
22
你的额外数组显然很多面试管不满意

【在 A*****i 的大作中提到】
: 哦,我第一反应是用另一个99长度(错了,应该是100)的array来做个bitmap
: 扫一遍input,有的把相应的置为1就行了,然后再扫一遍这个新bitmap,如果为0就把
: index输出
: 你这个方法不用额外数组但是不够直观啊。拐角case要考虑好

h*******e
发帖数: 1377
23
可以写代码随机生成两个long long数么各取下50位。。然后取相应bit 这样产生随机
输入值。
重复200遍就应该覆盖很多情况了吧~~~
然后加上全空 全选 [0] [1], [99] [2] [97]之类的。 两个连一起的那种, [[12] [
35]这种中间空一个的 中间空多个的。 然后还有 最边界空一个的 边界空出多于一个
的。
J*****a
发帖数: 46
24
直接扫一遍才直观 要什么额外的东西
h****g
发帖数: 105
25
写了一个,大伙挑挑毛病
int A[5]={0,1,3,50,75};
int n=5;
///above is input
vector > res;
int j=0;
int k=0;
for(int i=0;i if(A[i]==j){
j++;
continue;
}
else{
k=j;
while(A[i]!=j){
j++;
}
res.push_back(make_pair(k,j-1));
i--;
}
}
k=A[n-1];
if(k<99)
res.push_back(make_pair(k+1,99));
w******e
发帖数: 1621
26
用phone num当bst的值么

【在 A*****i 的大作中提到】
: node {
: node left;
: node right;
: String name;
: String number;
: }

s*i
发帖数: 5025
27
while(A[i]!=j)这句不好。最大复杂度应该是elements的个数,而不是100

【在 h****g 的大作中提到】
: 写了一个,大伙挑挑毛病
: int A[5]={0,1,3,50,75};
: int n=5;
: ///above is input
: vector > res;
: int j=0;
: int k=0;
: for(int i=0;i: if(A[i]==j){
: j++;

o**********5
发帖数: 53
28
我的面试官比较有耐心吧

【在 y**********a 的大作中提到】
: 我就被问了第一题,然后让写了 test cases。
: 你还被问了第二个问题,看来还是很有希望的。

o**********5
发帖数: 53
29
肯定不是国人的口音,
应该是三哥

【在 j*****8 的大作中提到】
: 狗狗的电面bar这么低了?。。
: 是国人面试官把?

o**********5
发帖数: 53
30
我写的code被评价说: 在考虑corner cases, 有冗余code.
Testing Cases 没有过多评价.

【在 l*****a 的大作中提到】
: 这个写TC很见功力阿
: 既要cover all the path,又要没有冗余,不太容易把

相关主题
发个面试coding题,攒人品题目: iterative binary tree post order traversal
double sqrt(double x)的代码谁能贴一下?reverse链表
一道linked list编程题请教一道单链表问题
进入JobHunting版参与讨论
m*****k
发帖数: 731
31
if input is [ 3 ]
output should be [0-2, 4-99]
or just
[4-99] ?

【在 o**********5 的大作中提到】
: 跪了。。。 但是深感必须回馈版面。。。
: 1。给个sorted array, 只包含不重复整数,数值范围在 [0,99]中间, 按格式打
: 印其余数值:
: 输入: [0,1,3,50,75]
: 输出: [2,4-49,51-74,76-99]
: 请写出程序,及 testing cases。
: 2。讨论题:手机上只有有限内存,请问何种格式更适合存储contact: hash-table 或
: 者 binary tree。
: 面试官建议: 选binary tree. 因为用户需要看到sorted的结果, 而hashtable需要
: 额外的空间进行sorting。binary tree的插入和寻找虽然更加耗时,但是因为手机用户

r****7
发帖数: 2282
32
这种tc的入门题估计想让面试官眼前一亮就能5分钟搞定了。
控制5分钟写的代码,不知道是不是所有corner cases都考虑到了,而且最后一个元素
处理的感觉不好。
vector func(vector in)
{
vector ret;
if (in.size() == 0) {
ret.push_back("0 - 99");
}
int curr = in[0];
int prev = -1;
for (int i = 0; i < in.size(); i ++) {
curr = in[i];
if (curr != prev + 1) {
string oneRes = to_string(prev + 1);
if (curr != prev + 2) {
oneRes += " - ";
oneRes += to_string(curr - 1);
}
ret.push_back(oneRes);
}
prev = curr;
}
if (curr != 99) {
string oneRes = to_string(curr + 1);
if (curr != 98) {
oneRes += " - 99";
}
ret.push_back(oneRes);
}
return ret;
}

【在 A*****i 的大作中提到】
: 哦,我第一反应是用另一个99长度(错了,应该是100)的array来做个bitmap
: 扫一遍input,有的把相应的置为1就行了,然后再扫一遍这个新bitmap,如果为0就把
: index输出
: 你这个方法不用额外数组但是不够直观啊。拐角case要考虑好

t*******i
发帖数: 4960
33
往数组里加一个 100是不是就可以处理最后一个元素了。

【在 r****7 的大作中提到】
: 这种tc的入门题估计想让面试官眼前一亮就能5分钟搞定了。
: 控制5分钟写的代码,不知道是不是所有corner cases都考虑到了,而且最后一个元素
: 处理的感觉不好。
: vector func(vector in)
: {
: vector ret;
: if (in.size() == 0) {
: ret.push_back("0 - 99");
: }
: int curr = in[0];

Q*****a
发帖数: 33
34
偷懒push_back一个100,设prev=-1,就不处理cornet case了。用stringstream,就不to
_string了。
string findMissingElements(vector& input) {
int prev = -1;
stringstream ss;
ss << "[";
bool first = true;
input.push_back(100);
for (int i = 0; i < input.size(); ++i) {
if (input[i] != prev + 1) {
if (first) {
first = false;
}
else {
ss << ",";
}
int start = prev + 1, end = input[i] - 1;
if (start == end) {
ss << start;
}
else {
ss << start << "-" << end;
}
}
prev = input[i];
}
ss << "]";
return ss.str();
}
Q*****a
发帖数: 33
35
test case:
[]
[0]
[1]
[2]
[97]
[98]
[99]
[0 1]
[0 2]
[0 3]
[0 2 4]
[0 2 5]
[98 99]
[97 99]
[96 99]
[94 97 99]
[94 96 99]
f***8
发帖数: 510
36
这第一题好像没啥TRICK呀,就是扫一遍ARRAY,TC也不难呀,难道我漏了什么?随便些
了段CODE
public class MissingElements {
public static List printMissingElements(int [] A) {
if (A == null) {
return null;
}

List result = new ArrayList();

int len = A.length;
int i;
for (i = 0; i < len - 1; i++) {
if (A[i+1] - A[i] > 2) {
result.add((A[i] + 1) + "-" + (A[i+1] - 1) );
} else if (A[i+1] - A[i] == 2) {
result.add(A[i] + 1 + "");
}
}
if (i == len - 1 && A[i] != 99) {
result.add((A[i] + 1) + "-" + 99);
}

return result;
}
public static void main(String[] args) {
int[] A = {0,1,3,50,75};
List result = printMissingElements(A);
System.out.println(result);
}
}

【在 o**********5 的大作中提到】
: 跪了。。。 但是深感必须回馈版面。。。
: 1。给个sorted array, 只包含不重复整数,数值范围在 [0,99]中间, 按格式打
: 印其余数值:
: 输入: [0,1,3,50,75]
: 输出: [2,4-49,51-74,76-99]
: 请写出程序,及 testing cases。
: 2。讨论题:手机上只有有限内存,请问何种格式更适合存储contact: hash-table 或
: 者 binary tree。
: 面试官建议: 选binary tree. 因为用户需要看到sorted的结果, 而hashtable需要
: 额外的空间进行sorting。binary tree的插入和寻找虽然更加耗时,但是因为手机用户

p*****p
发帖数: 379
37
随便看到个错误:输入[5],这个会少了0-4

【在 f***8 的大作中提到】
: 这第一题好像没啥TRICK呀,就是扫一遍ARRAY,TC也不难呀,难道我漏了什么?随便些
: 了段CODE
: public class MissingElements {
: public static List printMissingElements(int [] A) {
: if (A == null) {
: return null;
: }
:
: List result = new ArrayList();
:

k****f
发帖数: 19
38
不知道有什么错误没有
vector Print(int a[], int n)
{
if (n == 0)
{
string s = "0-99";
return vector(1, s);
}
int pre = 0;
vector ret;
for (int i = 0; i <= n; i++)
{
int cur;
if (i == n)
cur = 100;
else
cur = a[i];
if (cur > pre)
{
if (cur - pre > 2)
ret.push_back(to_string(pre) + "-" + to_string(cur - 1));
else
ret.push_back(to_string(pre));
}
pre = cur + 1;
}
return ret;
}
n*****n
发帖数: 5277
39
不用test [99, 98]?
h*********d
发帖数: 336
40
这道题的难点是处理空数组和最后的a[len-1]吧,还有打印格式
if (a.length==0) System.out.println("0-99");
int prev = -1;
for (int i=0; i if (a[i]-1==prev) {
prev=a[i];
} else {
if (prev+1==a[i]-1)
System.out.println(prev+1);
else
System.out.println((prev+1) + "-" + (a[i]-1));
prev=a[i];
}
if (i==a.length-1 && a[i]!=99)
if (a[i]==98) System.out.println(99);
else System.out.println((a[i]+1)+"-"+99);
}
请大牛指点
}

【在 s*i 的大作中提到】
: while(A[i]!=j)这句不好。最大复杂度应该是elements的个数,而不是100
相关主题
请教一道单链表问题到底怎么了?很多面试来的居然连reverse一个链表都写不来
Leetcode TimeoutLeetcode书中missing range一题的答案是不是错的?
leetcode populating next pointer 2感觉今天结结实实被烙印阴了
进入JobHunting版参与讨论
l*****a
发帖数: 14598
41
着两端的code是否应该reuse呢
if (prev+1==a[i]-1)
System.out.println(prev+1);
else
System.out.println((prev+1) + "-" + (a[i]-1));
if (a[i]==98) System.out.println(99);
else System.out.println((a[i]+1)+"-"+99);

【在 h*********d 的大作中提到】
: 这道题的难点是处理空数组和最后的a[len-1]吧,还有打印格式
: if (a.length==0) System.out.println("0-99");
: int prev = -1;
: for (int i=0; i: if (a[i]-1==prev) {
: prev=a[i];
: } else {
: if (prev+1==a[i]-1)
: System.out.println(prev+1);
: else

r******e
发帖数: 253
42
第一题很好。电面一般都很简单,不过要求高,5分钟写出来不带错才行。要是花了20
分钟还在改code,面试官很可能就懒得问第二个问题了。

【在 o**********5 的大作中提到】
: 跪了。。。 但是深感必须回馈版面。。。
: 1。给个sorted array, 只包含不重复整数,数值范围在 [0,99]中间, 按格式打
: 印其余数值:
: 输入: [0,1,3,50,75]
: 输出: [2,4-49,51-74,76-99]
: 请写出程序,及 testing cases。
: 2。讨论题:手机上只有有限内存,请问何种格式更适合存储contact: hash-table 或
: 者 binary tree。
: 面试官建议: 选binary tree. 因为用户需要看到sorted的结果, 而hashtable需要
: 额外的空间进行sorting。binary tree的插入和寻找虽然更加耗时,但是因为手机用户

n*****n
发帖数: 5277
43
挑个毛病,for loop之后 i 已经等于 a.length了

【在 h*********d 的大作中提到】
: 这道题的难点是处理空数组和最后的a[len-1]吧,还有打印格式
: if (a.length==0) System.out.println("0-99");
: int prev = -1;
: for (int i=0; i: if (a[i]-1==prev) {
: prev=a[i];
: } else {
: if (prev+1==a[i]-1)
: System.out.println(prev+1);
: else

h*********d
发帖数: 336
44
确实应该,但我一开始忘了考虑最后的interval, 所以临时加上的
而且combine这两种情况真心不好写,最好的方法是create a print method to handle
all cases, pass index, and a[].
这道题很好,非常简单,但要把所有情况都考虑,一遍bug free, 很难。

【在 l*****a 的大作中提到】
: 着两端的code是否应该reuse呢
: if (prev+1==a[i]-1)
: System.out.println(prev+1);
: else
: System.out.println((prev+1) + "-" + (a[i]-1));
: if (a[i]==98) System.out.println(99);
: else System.out.println((a[i]+1)+"-"+99);

h*********d
发帖数: 336
45
不懂,i is defined within for loop, after for loop, there is no i

【在 n*****n 的大作中提到】
: 挑个毛病,for loop之后 i 已经等于 a.length了
c******3
发帖数: 296
46
这种题要求5分钟写完并且全对难度就太大了。

20

【在 r******e 的大作中提到】
: 第一题很好。电面一般都很简单,不过要求高,5分钟写出来不带错才行。要是花了20
: 分钟还在改code,面试官很可能就懒得问第二个问题了。

n*****n
发帖数: 5277
47
看错了,不好意思

【在 h*********d 的大作中提到】
: 不懂,i is defined within for loop, after for loop, there is no i
s*i
发帖数: 5025
48
差不多一样,我是这么干的:
int pre = -1;
for(int i: input)
{
int gap = i - pre; //a little readable
if(gap == 2)
System.out.println(pre + 1);
else if(gap > 2)
System.out.println((pre + 1) + "-" + (i-1));
last = i;
}
if(pre == 98)
System.out.println(99);
else if(pre < 99)
System.out.println((pre + 1) + "-99");

【在 h*********d 的大作中提到】
: 这道题的难点是处理空数组和最后的a[len-1]吧,还有打印格式
: if (a.length==0) System.out.println("0-99");
: int prev = -1;
: for (int i=0; i: if (a[i]-1==prev) {
: prev=a[i];
: } else {
: if (prev+1==a[i]-1)
: System.out.println(prev+1);
: else

A****0
发帖数: 1073
49
空集和null没有case
空集直接0-99,null直接返回?

【在 s*i 的大作中提到】
: 差不多一样,我是这么干的:
: int pre = -1;
: for(int i: input)
: {
: int gap = i - pre; //a little readable
: if(gap == 2)
: System.out.println(pre + 1);
: else if(gap > 2)
: System.out.println((pre + 1) + "-" + (i-1));
: last = i;

l*****a
发帖数: 14598
50
你们非用for loop把三种情况混在一起,感觉不好。
如下是不是会清晰易懂一点呢
if(num[0]!=start) print(start,num[0]-1);
int cur=0;
while(cur if(num[cur]!=num[cur+1]-1) print(num[cur]+1,num[cur+1]-1);
cur++;
}
if(num[num.length-1]!=end) print(num[num.length-1]+1,end);

【在 s*i 的大作中提到】
: 差不多一样,我是这么干的:
: int pre = -1;
: for(int i: input)
: {
: int gap = i - pre; //a little readable
: if(gap == 2)
: System.out.println(pre + 1);
: else if(gap > 2)
: System.out.println((pre + 1) + "-" + (i-1));
: last = i;

相关主题
leetcode上的Sort List那道题一道Twitter面经题,求问我的答案对不对
[BSSD]回国一趟回来做题很难进入状态了,顺便问下那个Merge k SortedAmazon二面
F家电面:group Anagrams请教一个phone interview 问题
进入JobHunting版参与讨论
s*i
发帖数: 5025
51
这个已经包含空集的情况。
Null 的确需要在开始判断一下。

[发表自未名空间手机版 - m.mitbbs.com]

【在 A****0 的大作中提到】
: 空集和null没有case
: 空集直接0-99,null直接返回?

c******3
发帖数: 296
52
Best!

【在 l*****a 的大作中提到】
: 你们非用for loop把三种情况混在一起,感觉不好。
: 如下是不是会清晰易懂一点呢
: if(num[0]!=start) print(start,num[0]-1);
: int cur=0;
: while(cur: if(num[cur]!=num[cur+1]-1) print(num[cur]+1,num[cur+1]-1);
: cur++;
: }
: if(num[num.length-1]!=end) print(num[num.length-1]+1,end);

x****B
发帖数: 103
53
我也被面了第一题。我也挂了。。

【在 o**********5 的大作中提到】
: 跪了。。。 但是深感必须回馈版面。。。
: 1。给个sorted array, 只包含不重复整数,数值范围在 [0,99]中间, 按格式打
: 印其余数值:
: 输入: [0,1,3,50,75]
: 输出: [2,4-49,51-74,76-99]
: 请写出程序,及 testing cases。
: 2。讨论题:手机上只有有限内存,请问何种格式更适合存储contact: hash-table 或
: 者 binary tree。
: 面试官建议: 选binary tree. 因为用户需要看到sorted的结果, 而hashtable需要
: 额外的空间进行sorting。binary tree的插入和寻找虽然更加耗时,但是因为手机用户

L*******e
发帖数: 114
54
I wrote one in Java.
===========================
public static void printMissing(int[] a, int max){

if (a == null){
throw new IllegalArgumentException("null input array");
}

// empty array
if (a.length == 0){
System.out.println("0-" + max);
return;
}

int from = 0;
for (int i = 0; i < a.length; i++){
if (a[i] != from){
print(from, a[i]);
}
from = a[i] + 1;
}

// print the remaining
if (from <= max){
print(from, max + 1);
}

}
private static void print(int from, int to){
if (from == to - 1){
System.out.println(from);
} else {
System.out.println(from + "-" + (to-1));
}
}
E******T
发帖数: 59
55
+1

【在 L*******e 的大作中提到】
: I wrote one in Java.
: ===========================
: public static void printMissing(int[] a, int max){
:
: if (a == null){
: throw new IllegalArgumentException("null input array");
: }
:
: // empty array
: if (a.length == 0){

p*********j
发帖数: 47
56
+1,神code

【在 L*******e 的大作中提到】
: I wrote one in Java.
: ===========================
: public static void printMissing(int[] a, int max){
:
: if (a == null){
: throw new IllegalArgumentException("null input array");
: }
:
: // empty array
: if (a.length == 0){

f*******w
发帖数: 1243
57

收藏了。这个题确实简单,不过写得这样清晰还是很考水平的。

【在 l*****a 的大作中提到】
: 你们非用for loop把三种情况混在一起,感觉不好。
: 如下是不是会清晰易懂一点呢
: if(num[0]!=start) print(start,num[0]-1);
: int cur=0;
: while(cur: if(num[cur]!=num[cur+1]-1) print(num[cur]+1,num[cur+1]-1);
: cur++;
: }
: if(num[num.length-1]!=end) print(num[num.length-1]+1,end);

1 (共1页)
进入JobHunting版参与讨论
相关主题
数组中找和为0的3个数,4个数Leetcode Timeout
问几个有关Binary tree的题leetcode populating next pointer 2
发个面试coding题,攒人品到底怎么了?很多面试来的居然连reverse一个链表都写不来
double sqrt(double x)的代码谁能贴一下?Leetcode书中missing range一题的答案是不是错的?
一道linked list编程题感觉今天结结实实被烙印阴了
题目: iterative binary tree post order traversalleetcode上的Sort List那道题
reverse链表[BSSD]回国一趟回来做题很难进入状态了,顺便问下那个Merge k Sorted
请教一道单链表问题F家电面:group Anagrams
相关话题的讨论汇总
话题: int话题: string话题: prev话题: 99话题: else