a******e 发帖数: 710 | 1 面试官有东南亚口音
第一题是leetcode原题,大数+1
第二题是这样的:
n个Speaker,S1, S2, ...Sn
每个Speaker在不同的时间段有不同的音量如:
S1: {[2,5], vol=10}, {[6,10], vol=2}, ...
S2: {[1,6], vol=1}, {[8,12], vol=8}, ...
...
请输出每个时间段及这个时间段内最大的音量
比如,只有S1和S2的话,输出就是
[1,2],vol=1, [2,5], vol=10, [5,6], vol = 1, [6,8], vol = 2, [8,12], vol = 8.
他让想算法,给出伪码。我说最简单的方法就是S1和S2先合并,然后再和S3合并,以此
类推。
他说可以,那写一下伪码吧。 我写的时候发现case太多,结果没有写完。 今天收听到
消息,说挂了。 | z*********8 发帖数: 2070 | 2 第二题不能用额外空间吗?
不得不赞一下G的面试, 总是有新题涌出 | a***m 发帖数: 5037 | 3 第二题这样行吗:
一个数组, index 为单位时间
各个 speaker 的 各个时段volume都累加到这个数组
最后对数组按音量分段
【在 a******e 的大作中提到】 : 面试官有东南亚口音 : 第一题是leetcode原题,大数+1 : 第二题是这样的: : n个Speaker,S1, S2, ...Sn : 每个Speaker在不同的时间段有不同的音量如: : S1: {[2,5], vol=10}, {[6,10], vol=2}, ... : S2: {[1,6], vol=1}, {[8,12], vol=8}, ... : ... : 请输出每个时间段及这个时间段内最大的音量 : 比如,只有S1和S2的话,输出就是
| d**********x 发帖数: 4083 | 4 should be...
not that hard...
【在 z*********8 的大作中提到】 : 第二题不能用额外空间吗? : 不得不赞一下G的面试, 总是有新题涌出
| d**********x 发帖数: 4083 | 5 no. you need to make it better 'discreted' so it will lead you to the
segment tree solution.
otherwise, consider a interval like [1, INT_MAX]
【在 a***m 的大作中提到】 : 第二题这样行吗: : 一个数组, index 为单位时间 : 各个 speaker 的 各个时段volume都累加到这个数组 : 最后对数组按音量分段
| h****y 发帖数: 137 | 6 这个不是新题了吧, EPI上的原题,
可以divide and conquer
也可以先排序, 从左往右scan, 同时maintain一个BST
两种都是nlog(n)
【在 z*********8 的大作中提到】 : 第二题不能用额外空间吗? : 不得不赞一下G的面试, 总是有新题涌出
| e****s 发帖数: 46 | | h****y 发帖数: 137 | 8 elements of programming interview
【在 e****s 的大作中提到】 : 什么是EPI?
| n****e 发帖数: 678 | 9 能具体说说是leetcode的哪道题吗? 不太明白“大数+1”的意思。
【在 a******e 的大作中提到】 : 面试官有东南亚口音 : 第一题是leetcode原题,大数+1 : 第二题是这样的: : n个Speaker,S1, S2, ...Sn : 每个Speaker在不同的时间段有不同的音量如: : S1: {[2,5], vol=10}, {[6,10], vol=2}, ... : S2: {[1,6], vol=1}, {[8,12], vol=8}, ... : ... : 请输出每个时间段及这个时间段内最大的音量 : 比如,只有S1和S2的话,输出就是
| e*******s 发帖数: 1979 | 10 就是考了大数
【在 n****e 的大作中提到】 : 能具体说说是leetcode的哪道题吗? 不太明白“大数+1”的意思。
| | | n****e 发帖数: 678 | 11 能给个leetcode 大数题的连接吗?
做了leetcode这么久,还不知道哪道题是大数。。。。
【在 e*******s 的大作中提到】 : 就是考了大数
| v*****n 发帖数: 22 | 12 能不能展开说说,或者给个链接?
谢谢。
【在 h****y 的大作中提到】 : 这个不是新题了吧, EPI上的原题, : 可以divide and conquer : 也可以先排序, 从左往右scan, 同时maintain一个BST : 两种都是nlog(n)
| s********u 发帖数: 1109 | 13 颜色那题么,好像看着有点差别。
【在 h****y 的大作中提到】 : 这个不是新题了吧, EPI上的原题, : 可以divide and conquer : 也可以先排序, 从左往右scan, 同时maintain一个BST : 两种都是nlog(n)
| d**********x 发帖数: 4083 | 14 the basic idea is the same. convert each segment into 2 events, sort and
maintain some states
【在 s********u 的大作中提到】 : 颜色那题么,好像看着有点差别。
| r*******n 发帖数: 3020 | 15 去leetcode 搜 plus one那道题
【在 n****e 的大作中提到】 : 能给个leetcode 大数题的连接吗? : 做了leetcode这么久,还不知道哪道题是大数。。。。
| D**********d 发帖数: 849 | 16 第二道 是 interval 相加,O(nlgn)
具体做法是:
用 map 将所有端点排序, 其中右端的 volume 为负值,然后扫描 map
一遍即可. | n****e 发帖数: 678 | 17 多谢,知道了!
plus one和大数相加没有什么关系啊
【在 r*******n 的大作中提到】 : 去leetcode 搜 plus one那道题
| w*******e 发帖数: 395 | 18 第二题:
1.先找出最小最大的时间值,设置一个数组,每个element代表一个单位时间内的max vol
2.填满这个数组
3,扫描这个数组,当值跳变的时候,就增加一个时间段
这道题目如果follow leetcode上merge interval的思路,肯定会非常麻烦
复杂度是O(mn),n是S的个数,m是时间段的长度
【在 a******e 的大作中提到】 : 面试官有东南亚口音 : 第一题是leetcode原题,大数+1 : 第二题是这样的: : n个Speaker,S1, S2, ...Sn : 每个Speaker在不同的时间段有不同的音量如: : S1: {[2,5], vol=10}, {[6,10], vol=2}, ... : S2: {[1,6], vol=1}, {[8,12], vol=8}, ... : ... : 请输出每个时间段及这个时间段内最大的音量 : 比如,只有S1和S2的话,输出就是
| d**********x 发帖数: 4083 | 19 S1: {[0, 222233333], vol=1};
vol
【在 w*******e 的大作中提到】 : 第二题: : 1.先找出最小最大的时间值,设置一个数组,每个element代表一个单位时间内的max vol : 2.填满这个数组 : 3,扫描这个数组,当值跳变的时候,就增加一个时间段 : 这道题目如果follow leetcode上merge interval的思路,肯定会非常麻烦 : 复杂度是O(mn),n是S的个数,m是时间段的长度
| w*******e 发帖数: 395 | 20 if coding in interviews, start from the simplest cases. Then, at least, you
can finish the coding. Then tell the interviewers the cases your codes
cannot cover and try to optimize it.
if you tell them a very complicate algorithm which covers a lot of cases,
you will get into a trap and cannot finish the codes. Then the result will
be a rejection.
【在 d**********x 的大作中提到】 : S1: {[0, 222233333], vol=1}; : : vol
| | | d**********x 发帖数: 4083 | 21 but not one that unacceptable. :)
you
【在 w*******e 的大作中提到】 : if coding in interviews, start from the simplest cases. Then, at least, you : can finish the coding. Then tell the interviewers the cases your codes : cannot cover and try to optimize it. : if you tell them a very complicate algorithm which covers a lot of cases, : you will get into a trap and cannot finish the codes. Then the result will : be a rejection.
| g*********e 发帖数: 14401 | 22
第二题就是skyline problem吧
【在 a******e 的大作中提到】 : 面试官有东南亚口音 : 第一题是leetcode原题,大数+1 : 第二题是这样的: : n个Speaker,S1, S2, ...Sn : 每个Speaker在不同的时间段有不同的音量如: : S1: {[2,5], vol=10}, {[6,10], vol=2}, ... : S2: {[1,6], vol=1}, {[8,12], vol=8}, ... : ... : 请输出每个时间段及这个时间段内最大的音量 : 比如,只有S1和S2的话,输出就是
| f********x 发帖数: 2086 | 23 第二题
每次取出每个队列的head,然后提取区间(分隔最前端可以确定的几轮and保留剩下的
区间),直到某个head的区间用完,取入其head的下一个
这思路和merge n sorted list一个感觉,变成merge n sorted interval了
貌似可行 | f********x 发帖数: 2086 | 24
自己仔细想了想,实现起来还是很麻烦,但是感觉依然可行
大牛快给点建议
【在 f********x 的大作中提到】 : 第二题 : 每次取出每个队列的head,然后提取区间(分隔最前端可以确定的几轮and保留剩下的 : 区间),直到某个head的区间用完,取入其head的下一个 : 这思路和merge n sorted list一个感觉,变成merge n sorted interval了 : 貌似可行
| w*******e 发帖数: 395 | 25 typdef struct {
int start, end;
int vol;
} Interval;
vector > findMaxVol(vector > &S) {
int n = S.size();
vector > ret;
if(n==0) return ret;
if(n==1) return S[0];
vector index(n, 0);
int start=S[0][0].start, end=S[0][0].end;
int max_vol = 0;
for(int i=0; i
if(start>S[i][0].start) start = S[i][0].start;
}
int finish_cnt = 0;
while(finish_cnt
for(int i=0; i
if(index[i]
index[i]++;
if(index[i]==S[i].size()) finish_cnt++;
}
if(index[i]>=S[i].size()) continue;
if(S[i][index[i]].end
if(max_vol
}
Interval ntvl;
ntvl.start = start;
ntvl.end = end;
ntvl.vo;l = max_vol;
ret.push_back(ntvl);
max_vol = 0;
start = end;
end = INT_MAX;
}
return ret;
}
【在 d**********x 的大作中提到】 : S1: {[0, 222233333], vol=1}; : : vol
| n****e 发帖数: 678 | 26 Exactly
Skyline 的解法貌似是(没记错的话):
把所有的turning points 放在一起,根据coordination从小到大sort 。
struct turnpoint {
int ptr; //coordinate;
bool startOrEnd;
int volume
}
再用max-heap, 把所有的turning points扫一遍,遇到start turning point, 把
volume放入max-heap. 遇到end turning point,把对应的volume从max-heap中取出。
max-heap的max 值就是对应区间的最大volume
complexity是O(nlogn)
max-heap可以用multiset实现。
【在 g*********e 的大作中提到】 : : 第二题就是skyline problem吧
| a******e 发帖数: 710 | 27 本来是这么想的。
写的时候想写两个speaker的case, 但即使是这样也比merge interval复杂很多,于是
就挂了。。。
you
【在 w*******e 的大作中提到】 : if coding in interviews, start from the simplest cases. Then, at least, you : can finish the coding. Then tell the interviewers the cases your codes : cannot cover and try to optimize it. : if you tell them a very complicate algorithm which covers a lot of cases, : you will get into a trap and cannot finish the codes. Then the result will : be a rejection.
| g*********e 发帖数: 14401 | 28
。
multiset用来做maxheap貌似不错!
不知道heap在stil里标准的data structure是什么
【在 n****e 的大作中提到】 : Exactly : Skyline 的解法貌似是(没记错的话): : 把所有的turning points 放在一起,根据coordination从小到大sort 。 : struct turnpoint { : int ptr; //coordinate; : bool startOrEnd; : int volume : } : 再用max-heap, 把所有的turning points扫一遍,遇到start turning point, 把 : volume放入max-heap. 遇到end turning point,把对应的volume从max-heap中取出。
| n****e 发帖数: 678 | 29 C++ STL 里面有:
std::make_heap, std::pop_heap, std::push_heap, std::sort_heap
很少用到 | f******p 发帖数: 173 | 30 不是accumulated volume是max volume.
不过赞思路,学习。
map
【在 D**********d 的大作中提到】 : 第二道 是 interval 相加,O(nlgn) : 具体做法是: : 用 map 将所有端点排序, 其中右端的 volume 为负值,然后扫描 map : 一遍即可.
| | | z***n 发帖数: 2890 | 31
【在 d**********x 的大作中提到】 : the basic idea is the same. convert each segment into 2 events, sort and : maintain some states
| d***n 发帖数: 832 | 32 这个不work,不信找个输入走一遍
。
【在 n****e 的大作中提到】 : Exactly : Skyline 的解法貌似是(没记错的话): : 把所有的turning points 放在一起,根据coordination从小到大sort 。 : struct turnpoint { : int ptr; //coordinate; : bool startOrEnd; : int volume : } : 再用max-heap, 把所有的turning points扫一遍,遇到start turning point, 把 : volume放入max-heap. 遇到end turning point,把对应的volume从max-heap中取出。
| l*n 发帖数: 529 | 33 即便不work,也应该是你来走一遍来说明如何简单的输入都不work。
何况,该solution works。虽然很多地方拿skyline problem做divide & conquer的例
子,但那样并不意味着别的思路就行不通。
【在 d***n 的大作中提到】 : 这个不work,不信找个输入走一遍 : : 。
| c********p 发帖数: 1969 | | a******e 发帖数: 710 | 35 面试官有东南亚口音
第一题是leetcode原题,大数+1
第二题是这样的:
n个Speaker,S1, S2, ...Sn
每个Speaker在不同的时间段有不同的音量如:
S1: {[2,5], vol=10}, {[6,10], vol=2}, ...
S2: {[1,6], vol=1}, {[8,12], vol=8}, ...
...
请输出每个时间段及这个时间段内最大的音量
比如,只有S1和S2的话,输出就是
[1,2],vol=1, [2,5], vol=10, [5,6], vol = 1, [6,8], vol = 2, [8,12], vol = 8.
他让想算法,给出伪码。我说最简单的方法就是S1和S2先合并,然后再和S3合并,以此
类推。
他说可以,那写一下伪码吧。 我写的时候发现case太多,结果没有写完。 今天收听到
消息,说挂了。 | z*********8 发帖数: 2070 | 36 第二题不能用额外空间吗?
不得不赞一下G的面试, 总是有新题涌出 | a***m 发帖数: 5037 | 37 第二题这样行吗:
一个数组, index 为单位时间
各个 speaker 的 各个时段volume都累加到这个数组
最后对数组按音量分段
【在 a******e 的大作中提到】 : 面试官有东南亚口音 : 第一题是leetcode原题,大数+1 : 第二题是这样的: : n个Speaker,S1, S2, ...Sn : 每个Speaker在不同的时间段有不同的音量如: : S1: {[2,5], vol=10}, {[6,10], vol=2}, ... : S2: {[1,6], vol=1}, {[8,12], vol=8}, ... : ... : 请输出每个时间段及这个时间段内最大的音量 : 比如,只有S1和S2的话,输出就是
| d**********x 发帖数: 4083 | 38 should be...
not that hard...
【在 z*********8 的大作中提到】 : 第二题不能用额外空间吗? : 不得不赞一下G的面试, 总是有新题涌出
| d**********x 发帖数: 4083 | 39 no. you need to make it better 'discreted' so it will lead you to the
segment tree solution.
otherwise, consider a interval like [1, INT_MAX]
【在 a***m 的大作中提到】 : 第二题这样行吗: : 一个数组, index 为单位时间 : 各个 speaker 的 各个时段volume都累加到这个数组 : 最后对数组按音量分段
| h****y 发帖数: 137 | 40 这个不是新题了吧, EPI上的原题,
可以divide and conquer
也可以先排序, 从左往右scan, 同时maintain一个BST
两种都是nlog(n)
【在 z*********8 的大作中提到】 : 第二题不能用额外空间吗? : 不得不赞一下G的面试, 总是有新题涌出
| | | e****s 发帖数: 46 | | h****y 发帖数: 137 | 42 elements of programming interview
【在 e****s 的大作中提到】 : 什么是EPI?
| n****e 发帖数: 678 | 43 能具体说说是leetcode的哪道题吗? 不太明白“大数+1”的意思。
【在 a******e 的大作中提到】 : 面试官有东南亚口音 : 第一题是leetcode原题,大数+1 : 第二题是这样的: : n个Speaker,S1, S2, ...Sn : 每个Speaker在不同的时间段有不同的音量如: : S1: {[2,5], vol=10}, {[6,10], vol=2}, ... : S2: {[1,6], vol=1}, {[8,12], vol=8}, ... : ... : 请输出每个时间段及这个时间段内最大的音量 : 比如,只有S1和S2的话,输出就是
| e*******s 发帖数: 1979 | 44 就是考了大数
【在 n****e 的大作中提到】 : 能具体说说是leetcode的哪道题吗? 不太明白“大数+1”的意思。
| n****e 发帖数: 678 | 45 能给个leetcode 大数题的连接吗?
做了leetcode这么久,还不知道哪道题是大数。。。。
【在 e*******s 的大作中提到】 : 就是考了大数
| v*****n 发帖数: 22 | 46 能不能展开说说,或者给个链接?
谢谢。
【在 h****y 的大作中提到】 : 这个不是新题了吧, EPI上的原题, : 可以divide and conquer : 也可以先排序, 从左往右scan, 同时maintain一个BST : 两种都是nlog(n)
| s********u 发帖数: 1109 | 47 颜色那题么,好像看着有点差别。
【在 h****y 的大作中提到】 : 这个不是新题了吧, EPI上的原题, : 可以divide and conquer : 也可以先排序, 从左往右scan, 同时maintain一个BST : 两种都是nlog(n)
| d**********x 发帖数: 4083 | 48 the basic idea is the same. convert each segment into 2 events, sort and
maintain some states
【在 s********u 的大作中提到】 : 颜色那题么,好像看着有点差别。
| r*******n 发帖数: 3020 | 49 去leetcode 搜 plus one那道题
【在 n****e 的大作中提到】 : 能给个leetcode 大数题的连接吗? : 做了leetcode这么久,还不知道哪道题是大数。。。。
| D**********d 发帖数: 849 | 50 第二道 是 interval 相加,O(nlgn)
具体做法是:
用 map 将所有端点排序, 其中右端的 volume 为负值,然后扫描 map
一遍即可. | | | n****e 发帖数: 678 | 51 多谢,知道了!
plus one和大数相加没有什么关系啊
【在 r*******n 的大作中提到】 : 去leetcode 搜 plus one那道题
| w*******e 发帖数: 395 | 52 第二题:
1.先找出最小最大的时间值,设置一个数组,每个element代表一个单位时间内的max vol
2.填满这个数组
3,扫描这个数组,当值跳变的时候,就增加一个时间段
这道题目如果follow leetcode上merge interval的思路,肯定会非常麻烦
复杂度是O(mn),n是S的个数,m是时间段的长度
【在 a******e 的大作中提到】 : 面试官有东南亚口音 : 第一题是leetcode原题,大数+1 : 第二题是这样的: : n个Speaker,S1, S2, ...Sn : 每个Speaker在不同的时间段有不同的音量如: : S1: {[2,5], vol=10}, {[6,10], vol=2}, ... : S2: {[1,6], vol=1}, {[8,12], vol=8}, ... : ... : 请输出每个时间段及这个时间段内最大的音量 : 比如,只有S1和S2的话,输出就是
| d**********x 发帖数: 4083 | 53 S1: {[0, 222233333], vol=1};
vol
【在 w*******e 的大作中提到】 : 第二题: : 1.先找出最小最大的时间值,设置一个数组,每个element代表一个单位时间内的max vol : 2.填满这个数组 : 3,扫描这个数组,当值跳变的时候,就增加一个时间段 : 这道题目如果follow leetcode上merge interval的思路,肯定会非常麻烦 : 复杂度是O(mn),n是S的个数,m是时间段的长度
| w*******e 发帖数: 395 | 54 if coding in interviews, start from the simplest cases. Then, at least, you
can finish the coding. Then tell the interviewers the cases your codes
cannot cover and try to optimize it.
if you tell them a very complicate algorithm which covers a lot of cases,
you will get into a trap and cannot finish the codes. Then the result will
be a rejection.
【在 d**********x 的大作中提到】 : S1: {[0, 222233333], vol=1}; : : vol
| d**********x 发帖数: 4083 | 55 but not one that unacceptable. :)
you
【在 w*******e 的大作中提到】 : if coding in interviews, start from the simplest cases. Then, at least, you : can finish the coding. Then tell the interviewers the cases your codes : cannot cover and try to optimize it. : if you tell them a very complicate algorithm which covers a lot of cases, : you will get into a trap and cannot finish the codes. Then the result will : be a rejection.
| g*********e 发帖数: 14401 | 56
第二题就是skyline problem吧
【在 a******e 的大作中提到】 : 面试官有东南亚口音 : 第一题是leetcode原题,大数+1 : 第二题是这样的: : n个Speaker,S1, S2, ...Sn : 每个Speaker在不同的时间段有不同的音量如: : S1: {[2,5], vol=10}, {[6,10], vol=2}, ... : S2: {[1,6], vol=1}, {[8,12], vol=8}, ... : ... : 请输出每个时间段及这个时间段内最大的音量 : 比如,只有S1和S2的话,输出就是
| f********x 发帖数: 2086 | 57 第二题
每次取出每个队列的head,然后提取区间(分隔最前端可以确定的几轮and保留剩下的
区间),直到某个head的区间用完,取入其head的下一个
这思路和merge n sorted list一个感觉,变成merge n sorted interval了
貌似可行 | f********x 发帖数: 2086 | 58
自己仔细想了想,实现起来还是很麻烦,但是感觉依然可行
大牛快给点建议
【在 f********x 的大作中提到】 : 第二题 : 每次取出每个队列的head,然后提取区间(分隔最前端可以确定的几轮and保留剩下的 : 区间),直到某个head的区间用完,取入其head的下一个 : 这思路和merge n sorted list一个感觉,变成merge n sorted interval了 : 貌似可行
| w*******e 发帖数: 395 | 59 typdef struct {
int start, end;
int vol;
} Interval;
vector > findMaxVol(vector > &S) {
int n = S.size();
vector > ret;
if(n==0) return ret;
if(n==1) return S[0];
vector index(n, 0);
int start=S[0][0].start, end=S[0][0].end;
int max_vol = 0;
for(int i=0; i
if(start>S[i][0].start) start = S[i][0].start;
}
int finish_cnt = 0;
while(finish_cnt
for(int i=0; i
if(index[i]
index[i]++;
if(index[i]==S[i].size()) finish_cnt++;
}
if(index[i]>=S[i].size()) continue;
if(S[i][index[i]].end
if(max_vol
}
Interval ntvl;
ntvl.start = start;
ntvl.end = end;
ntvl.vo;l = max_vol;
ret.push_back(ntvl);
max_vol = 0;
start = end;
end = INT_MAX;
}
return ret;
}
【在 d**********x 的大作中提到】 : S1: {[0, 222233333], vol=1}; : : vol
| n****e 发帖数: 678 | 60 Exactly
Skyline 的解法貌似是(没记错的话):
把所有的turning points 放在一起,根据coordination从小到大sort 。
struct turnpoint {
int ptr; //coordinate;
bool startOrEnd;
int volume
}
再用max-heap, 把所有的turning points扫一遍,遇到start turning point, 把
volume放入max-heap. 遇到end turning point,把对应的volume从max-heap中取出。
max-heap的max 值就是对应区间的最大volume
complexity是O(nlogn)
max-heap可以用multiset实现。
【在 g*********e 的大作中提到】 : : 第二题就是skyline problem吧
| | | a******e 发帖数: 710 | 61 本来是这么想的。
写的时候想写两个speaker的case, 但即使是这样也比merge interval复杂很多,于是
就挂了。。。
you
【在 w*******e 的大作中提到】 : if coding in interviews, start from the simplest cases. Then, at least, you : can finish the coding. Then tell the interviewers the cases your codes : cannot cover and try to optimize it. : if you tell them a very complicate algorithm which covers a lot of cases, : you will get into a trap and cannot finish the codes. Then the result will : be a rejection.
| g*********e 发帖数: 14401 | 62
。
multiset用来做maxheap貌似不错!
不知道heap在stil里标准的data structure是什么
【在 n****e 的大作中提到】 : Exactly : Skyline 的解法貌似是(没记错的话): : 把所有的turning points 放在一起,根据coordination从小到大sort 。 : struct turnpoint { : int ptr; //coordinate; : bool startOrEnd; : int volume : } : 再用max-heap, 把所有的turning points扫一遍,遇到start turning point, 把 : volume放入max-heap. 遇到end turning point,把对应的volume从max-heap中取出。
| n****e 发帖数: 678 | 63 C++ STL 里面有:
std::make_heap, std::pop_heap, std::push_heap, std::sort_heap
很少用到 | f******p 发帖数: 173 | 64 不是accumulated volume是max volume.
不过赞思路,学习。
map
【在 D**********d 的大作中提到】 : 第二道 是 interval 相加,O(nlgn) : 具体做法是: : 用 map 将所有端点排序, 其中右端的 volume 为负值,然后扫描 map : 一遍即可.
| z***n 发帖数: 2890 | 65
【在 d**********x 的大作中提到】 : the basic idea is the same. convert each segment into 2 events, sort and : maintain some states
| d***n 发帖数: 832 | 66 这个不work,不信找个输入走一遍
。
【在 n****e 的大作中提到】 : Exactly : Skyline 的解法貌似是(没记错的话): : 把所有的turning points 放在一起,根据coordination从小到大sort 。 : struct turnpoint { : int ptr; //coordinate; : bool startOrEnd; : int volume : } : 再用max-heap, 把所有的turning points扫一遍,遇到start turning point, 把 : volume放入max-heap. 遇到end turning point,把对应的volume从max-heap中取出。
| l*n 发帖数: 529 | 67 即便不work,也应该是你来走一遍来说明如何简单的输入都不work。
何况,该solution works。虽然很多地方拿skyline problem做divide & conquer的例
子,但那样并不意味着别的思路就行不通。
【在 d***n 的大作中提到】 : 这个不work,不信找个输入走一遍 : : 。
| c********p 发帖数: 1969 | | n******e 发帖数: 957 | | c******n 发帖数: 4965 | 70 又看到喇叭的题了, 不就是 skyline 么? 那可是 lc 难 等级的, 怎么弄到店面了?
【在 a******e 的大作中提到】 : 面试官有东南亚口音 : 第一题是leetcode原题,大数+1 : 第二题是这样的: : n个Speaker,S1, S2, ...Sn : 每个Speaker在不同的时间段有不同的音量如: : S1: {[2,5], vol=10}, {[6,10], vol=2}, ... : S2: {[1,6], vol=1}, {[8,12], vol=8}, ... : ... : 请输出每个时间段及这个时间段内最大的音量 : 比如,只有S1和S2的话,输出就是
| | | l******s 发帖数: 3045 | | i******s 发帖数: 301 | 72 电面这么出题没意思,基本就是写报告可以看自己心情。 | a****n 发帖数: 70 | | p*********g 发帖数: 2998 | 74 这题满难的, 就算要写代码也不少, 我的思路就是每组按begin sort.
然后s1和s2合并, 出的新结果要和s3合并
合并时要以相同的begin为一组, 然后找最小的end,找到最小的end后, 可以找到这组最
大的voice,然后把这组的begin都更新为最小end+1, 然后再找下面一组 | j**********0 发帖数: 20 | 75 I have a solution here: https://github.com/jasonzhang2022/algorithm/blob/
master/src/main/java/jason/algorithm/practice/VoiceMixer.java
But it takes me at least 2 hours. |
|