S******3 发帖数: 14 | 1 前天尝试FB的电面,挂了。。。
把题目和我写的代码发出来,希望大家帮忙看看,指点一下我该如何改进, 谢谢!
题目是Merge a list of TimeRanges. TimeRange{int start; int end}.
Example: Given [1,3],[2,4],[7,8] , should return: [1,4], [7,8].
在Leetcode上,刷了十几道题,没刷中。。。
我的解法:(c#)
public List GetMergedTimeRanges(List input)
{
if (input == null || input.Count <= 1)
{
return input;
}
SortedDictionary sortedTimeRanges = new SortedDictionary
();
for (int i=0; i< input.Count; i++)
{
int key = input[i].start;
if (sortedTimeRanges.ContainsKey(key))
{
if (sortedTimeRanges[key].end < input[i].end)
{
sortedTimeRanges[key] = input[i];
}
}
else
{
sortedTimeRanges.Add(input[i].start, input[i]);
}
}
List results = new List();
results.Add(sortedTimeRanges.First().Value);
int j = 0;
foreach (KeyValuePair tr in sortedTimeRanges)
{
int lastEnd = results[j].end;
int currentStart = tr.Key;
if (currentStart <= lastEnd)
{
results.Add(new TimeRange(results[j].start, Math.Max(lastEnd,
tr.Value.end))));
}
else
{
results.Add(tr.Value);
j++;
}
}
return result;
} |
z*********8 发帖数: 2070 | |
S******3 发帖数: 14 | 3 我自己分析失败的原因,大家帮忙看看: 1. 用了SortedDictionary,不Efficient. 该
用List.OrderBy(x=x.start) 2.第二次loop一遍时,重复了第一个element, code也不
是特别readable. 3.因为只有半小时,当时想解法花了5分钟左右,test case没给完整
,(我只说了 null/empty/one element and T1: [1,2],[3,4] T2: [1,3],[2,4] T3 [
1,2],[1,3] |
z***m 发帖数: 1602 | 4 原题啊
[
【在 S******3 的大作中提到】 : 我自己分析失败的原因,大家帮忙看看: 1. 用了SortedDictionary,不Efficient. 该 : 用List.OrderBy(x=x.start) 2.第二次loop一遍时,重复了第一个element, code也不 : 是特别readable. 3.因为只有半小时,当时想解法花了5分钟左右,test case没给完整 : ,(我只说了 null/empty/one element and T1: [1,2],[3,4] T2: [1,3],[2,4] T3 [ : 1,2],[1,3]
|
S******3 发帖数: 14 | 5 原题是什么意思啊?
【在 z***m 的大作中提到】 : 原题啊 : : [
|
S******3 发帖数: 14 | 6 刷题真的那么有用么?那要刷到猴年马月啊~~~有没有更好点的建议啊大神!
【在 z*********8 的大作中提到】 : 继续刷, 刷到你遇到那条一模一样的题目为止
|
z*********8 发帖数: 2070 | 7 有啊, 把种族换成黑人西班牙人性别换成女, airbnb pinterest google facebook随
你挑
【在 S******3 的大作中提到】 : 刷题真的那么有用么?那要刷到猴年马月啊~~~有没有更好点的建议啊大神!
|
S******3 发帖数: 14 | 8 不好意思说自己是女的了。。。
【在 z*********8 的大作中提到】 : 有啊, 把种族换成黑人西班牙人性别换成女, airbnb pinterest google facebook随 : 你挑
|
M**********n 发帖数: 17 | |
S******3 发帖数: 14 | 10 2天
【在 M**********n 的大作中提到】 : 请问楼主电面后,多少天后告诉的结果啊
|
|
|
O********h 发帖数: 13 | 11 楼主什么时候投的简历?是面new grad的职位吗? |
l****g 发帖数: 761 | 12 你这个merge不对吧
你第二个loop每次都要 insert into results |
l****g 发帖数: 761 | |
M********x 发帖数: 76 | |
S******3 发帖数: 14 | 15 谢谢!Merge是弄错了。粗心弄错了,怪不得挂了。。要改成results[j].end = Math.
Max(lastEnd, tr.Value.end)就可以了。。刚用leetcode做了题,改了就accepted了。哎
【在 l****g 的大作中提到】 : 自己先run几次不难吧
|
S******3 发帖数: 14 | 16 不是new grad.是recruiter在Linkedin上找的,然后就打算试一试,还觉得刷题作用应
该不大。没想到自己能力差着,不刷好像没戏。。
【在 O********h 的大作中提到】 : 楼主什么时候投的简历?是面new grad的职位吗?
|
z*********8 发帖数: 2070 | 17 刷题和能力没啥关系
【在 S******3 的大作中提到】 : 不是new grad.是recruiter在Linkedin上找的,然后就打算试一试,还觉得刷题作用应 : 该不大。没想到自己能力差着,不刷好像没戏。。
|
m**********s 发帖数: 518 | 18 刷题和能力没有半毛钱关系。
【在 S******3 的大作中提到】 : 不是new grad.是recruiter在Linkedin上找的,然后就打算试一试,还觉得刷题作用应 : 该不大。没想到自己能力差着,不刷好像没戏。。
|
W***o 发帖数: 6519 | 19 这看起来很像空中有几架飞机的那道题啊,感觉用扫描线会比较简单 |
d*******e 发帖数: 113 | 20 之前做过面试官。
写出完整并且可以运行无bug的程序是第一位。
至于优化 时间空间复杂度 都是bonus项 |
|
|
s****y 发帖数: 371 | 21 难道这题不是merge intervals?
【在 S******3 的大作中提到】 : 前天尝试FB的电面,挂了。。。 : 把题目和我写的代码发出来,希望大家帮忙看看,指点一下我该如何改进, 谢谢! : 题目是Merge a list of TimeRanges. TimeRange{int start; int end}. : Example: Given [1,3],[2,4],[7,8] , should return: [1,4], [7,8]. : 在Leetcode上,刷了十几道题,没刷中。。。 : 我的解法:(c#) : public List GetMergedTimeRanges(List input) : { : if (input == null || input.Count <= 1) : {
|
q*****a 发帖数: 237 | 22 这题目有点简单。。我4年不面试了都觉得它简单。。
1. 肯定要bug free
2. 考官可能还要出第二题。。
【在 S******3 的大作中提到】 : 前天尝试FB的电面,挂了。。。 : 把题目和我写的代码发出来,希望大家帮忙看看,指点一下我该如何改进, 谢谢! : 题目是Merge a list of TimeRanges. TimeRange{int start; int end}. : Example: Given [1,3],[2,4],[7,8] , should return: [1,4], [7,8]. : 在Leetcode上,刷了十几道题,没刷中。。。 : 我的解法:(c#) : public List GetMergedTimeRanges(List input) : { : if (input == null || input.Count <= 1) : {
|
w**z 发帖数: 8232 | 23 不刷题 99.9%的人会挂。
【在 S******3 的大作中提到】 : 不是new grad.是recruiter在Linkedin上找的,然后就打算试一试,还觉得刷题作用应 : 该不大。没想到自己能力差着,不刷好像没戏。。
|
d**x 发帖数: 243 | |
C*****n 发帖数: 1049 | 25 这年头不刷题根本不行,面试的时候leetcode随便拿个easy到medium难度的题,十多分
钟要写出bug free并能立即运行的就很难,怎么和刷过题的比。不是说刷题在以后工作
中有多么有用,而是在面试中真的是很有用。400多道题了,我等老司机哪里耍得动啊。
【在 S******3 的大作中提到】 : 刷题真的那么有用么?那要刷到猴年马月啊~~~有没有更好点的建议啊大神!
|
c********t 发帖数: 5706 | 26 请问FB现在电面是用什么网站了?纯白版,还是可以编译执行的?
除非是做过竞赛的,否则不刷题肯定是不行的。你才刷了十几道题,能想到用start
sort,然后写的基本正确已
经很不错了。还有你习惯用其他语言吗?C++和java比较适合面试。python虽然简练,
但不太适合与面试官交流。我不懂C#。如果用java, sort就一行,一共10多行。
【在 S******3 的大作中提到】 : 前天尝试FB的电面,挂了。。。 : 把题目和我写的代码发出来,希望大家帮忙看看,指点一下我该如何改进, 谢谢! : 题目是Merge a list of TimeRanges. TimeRange{int start; int end}. : Example: Given [1,3],[2,4],[7,8] , should return: [1,4], [7,8]. : 在Leetcode上,刷了十几道题,没刷中。。。 : 我的解法:(c#) : public List GetMergedTimeRanges(List input) : { : if (input == null || input.Count <= 1) : {
|
s**********g 发帖数: 14942 | 27 纯白板
不过这种级别的题,有没有bug,面试官一眼就看出来了
400道题刷起来两三个月应该能刷完了
当然,题库是继续增长的。。
【在 c********t 的大作中提到】 : 请问FB现在电面是用什么网站了?纯白版,还是可以编译执行的? : 除非是做过竞赛的,否则不刷题肯定是不行的。你才刷了十几道题,能想到用start : sort,然后写的基本正确已 : 经很不错了。还有你习惯用其他语言吗?C++和java比较适合面试。python虽然简练, : 但不太适合与面试官交流。我不懂C#。如果用java, sort就一行,一共10多行。
|
s******9 发帖数: 4623 | 28 为什么要用dict?
直接sort然后merge不就完了吗?
【在 S******3 的大作中提到】 : 前天尝试FB的电面,挂了。。。 : 把题目和我写的代码发出来,希望大家帮忙看看,指点一下我该如何改进, 谢谢! : 题目是Merge a list of TimeRanges. TimeRange{int start; int end}. : Example: Given [1,3],[2,4],[7,8] , should return: [1,4], [7,8]. : 在Leetcode上,刷了十几道题,没刷中。。。 : 我的解法:(c#) : public List GetMergedTimeRanges(List input) : { : if (input == null || input.Count <= 1) : {
|
a****i 发帖数: 166 | |
S******3 发帖数: 14 | 30 没听过空中有几家飞机。我去看看~
【在 W***o 的大作中提到】 : 这看起来很像空中有几架飞机的那道题啊,感觉用扫描线会比较简单
|
|
|
S******3 发帖数: 14 | 31 嗯。Bug free的确很重要。
【在 d*******e 的大作中提到】 : 之前做过面试官。 : 写出完整并且可以运行无bug的程序是第一位。 : 至于优化 时间空间复杂度 都是bonus项
|
S******3 发帖数: 14 | 32 是的。帖子前面有人说过了。没想到Leetcode真有那么强大!早知道,刷完再面了。
【在 s****y 的大作中提到】 : 难道这题不是merge intervals?
|
s**********g 发帖数: 14942 | 33 顺序刷的话只要刷五六十题就到了。。。
【在 z*********8 的大作中提到】 : 继续刷, 刷到你遇到那条一模一样的题目为止
|
S******3 发帖数: 14 | 34 说真的,我也觉得简单。可能我们还是同一届毕业的,我也四年没面试了。嗯,还是想
得不够clean,具体也没写出Bug free的code。如果他还要出第二道题,那我可能就真的
还差着了。
【在 q*****a 的大作中提到】 : 这题目有点简单。。我4年不面试了都觉得它简单。。 : 1. 肯定要bug free : 2. 考官可能还要出第二题。。
|
S******3 发帖数: 14 | 35 C#有什么值得被嘲笑的。不懂。至少它比JAVA好多了吧。
【在 d**x 的大作中提到】 : 亮点 C#
|
S******3 发帖数: 14 | 36 用的是Codepad,像notepad++. 不可以执行编译。
我对C和JAVA都很熟,Python也还可以,用来写过game. 但是工作上都用C#,所以想着还
是用天天用着的。其实用c#, sort也是一行。我是想着sort的过程可以直接merge
start一样的Time range,而且running time也一样就直接用了sortedDictionary。还
是想问题的时候想得不够简洁明了。
【在 c********t 的大作中提到】 : 请问FB现在电面是用什么网站了?纯白版,还是可以编译执行的? : 除非是做过竞赛的,否则不刷题肯定是不行的。你才刷了十几道题,能想到用start : sort,然后写的基本正确已 : 经很不错了。还有你习惯用其他语言吗?C++和java比较适合面试。python虽然简练, : 但不太适合与面试官交流。我不懂C#。如果用java, sort就一行,一共10多行。
|
l****u 发帖数: 1764 | 37 这题leetcode上是hard的啊
【在 q*****a 的大作中提到】 : 这题目有点简单。。我4年不面试了都觉得它简单。。 : 1. 肯定要bug free : 2. 考官可能还要出第二题。。
|
p******e 发帖数: 528 | 38 我试了一下,这个网站可以Run我写的code。为什么你会觉得没法Run呢?
【在 S******3 的大作中提到】 : 用的是Codepad,像notepad++. 不可以执行编译。 : 我对C和JAVA都很熟,Python也还可以,用来写过game. 但是工作上都用C#,所以想着还 : 是用天天用着的。其实用c#, sort也是一行。我是想着sort的过程可以直接merge : start一样的Time range,而且running time也一样就直接用了sortedDictionary。还 : 是想问题的时候想得不够简洁明了。
|
p******e 发帖数: 528 | 39 请问个问题。 这里的bug free是否包含typo呢?比方说有的时候我的变量名起的复杂
了一点,
如果是一个不太易用的编辑器的话有时候会出现不小心把变量名写错的情况。这种情况下
会不会有问题?
【在 d*******e 的大作中提到】 : 之前做过面试官。 : 写出完整并且可以运行无bug的程序是第一位。 : 至于优化 时间空间复杂度 都是bonus项
|
m******n 发帖数: 1691 | 40 i guess yes.
况下
【在 p******e 的大作中提到】 : 请问个问题。 这里的bug free是否包含typo呢?比方说有的时候我的变量名起的复杂 : 了一点, : 如果是一个不太易用的编辑器的话有时候会出现不小心把变量名写错的情况。这种情况下 : 会不会有问题?
|
|
|
l****u 发帖数: 1764 | 41 typo应该没有问题,比如你把变量名start拼成了stat,只要大意没错,面试官应该不
会挂了你
但如果你把i写成j了,可能就有问题了
况下
【在 p******e 的大作中提到】 : 请问个问题。 这里的bug free是否包含typo呢?比方说有的时候我的变量名起的复杂 : 了一点, : 如果是一个不太易用的编辑器的话有时候会出现不小心把变量名写错的情况。这种情况下 : 会不会有问题?
|
l****u 发帖数: 1764 | 42 这个题目在leetcode上先sort后merge的方法,如果直接对Interval类实现Comparator
接口(Java),就可以过。如果自己从头写sort进行排序,就会LTE。我试过bubble
sort和insertion sort,都不行,请问各位大牛,是不是自己实现的sort怎么都不如
java自带的comparator高效啊 |
h******k 发帖数: 810 | 43 quicksort不是浪得虚名的。
Comparator
【在 l****u 的大作中提到】 : 这个题目在leetcode上先sort后merge的方法,如果直接对Interval类实现Comparator : 接口(Java),就可以过。如果自己从头写sort进行排序,就会LTE。我试过bubble : sort和insertion sort,都不行,请问各位大牛,是不是自己实现的sort怎么都不如 : java自带的comparator高效啊
|
l****g 发帖数: 761 | 44 说必须 bug free 的都是扯蛋
你可能因为一些你觉得的“小问题” 挂掉
但是很多时候 一些无关痛痒的 bug 是无所谓的
但是大的逻辑要正确 |
c********t 发帖数: 5706 | 45 typo肯定没关系。变量名还是简单点好,白板写得慢,空间又少。
况下
【在 p******e 的大作中提到】 : 请问个问题。 这里的bug free是否包含typo呢?比方说有的时候我的变量名起的复杂 : 了一点, : 如果是一个不太易用的编辑器的话有时候会出现不小心把变量名写错的情况。这种情况下 : 会不会有问题?
|
s*a 发帖数: 267 | 46 排序的时候应按照range的开始递增,结尾递减这么排序,然后遍历一遍贪心就可以了。
【在 S******3 的大作中提到】 : 前天尝试FB的电面,挂了。。。 : 把题目和我写的代码发出来,希望大家帮忙看看,指点一下我该如何改进, 谢谢! : 题目是Merge a list of TimeRanges. TimeRange{int start; int end}. : Example: Given [1,3],[2,4],[7,8] , should return: [1,4], [7,8]. : 在Leetcode上,刷了十几道题,没刷中。。。 : 我的解法:(c#) : public List GetMergedTimeRanges(List input) : { : if (input == null || input.Count <= 1) : {
|