u***n 发帖数: 21026 | 1 Phone interview
第一个简单atoi, String to Integer
第二个问题,一个array记录了log访问的page页码,找出最长出现的连续3个页码
把问题搞混了,我在琢磨怎么找到频次最高的三个页码,扫一遍统计一下呗。
问题是连续三个在一起的 一个最高频次
比如 p1 p2 p3 p4 p5 p6 p2 p3 p4 p6
连续3个旧市p2p3p4了
用hashMap把 三个页吗组成一个key,p1p2p3,然后是p2p3p4,然后是p3p4p5,最后找那个
haspMap里面value最大的
Hasmap里面怎么找最大的给忘了
悲剧了
Move on,明天还有google interview |
l*****z 发帖数: 3022 | 2 再用个heap存最大就好了
【在 u***n 的大作中提到】 : Phone interview : 第一个简单atoi, String to Integer : 第二个问题,一个array记录了log访问的page页码,找出最长出现的连续3个页码 : 把问题搞混了,我在琢磨怎么找到频次最高的三个页码,扫一遍统计一下呗。 : 问题是连续三个在一起的 一个最高频次 : 比如 p1 p2 p3 p4 p5 p6 p2 p3 p4 p6 : 连续3个旧市p2p3p4了 : 用hashMap把 三个页吗组成一个key,p1p2p3,然后是p2p3p4,然后是p3p4p5,最后找那个 : haspMap里面value最大的 : Hasmap里面怎么找最大的给忘了
|
i*****h 发帖数: 1534 | 3 过去的就别想了,好好准备下一个
【在 u***n 的大作中提到】 : Phone interview : 第一个简单atoi, String to Integer : 第二个问题,一个array记录了log访问的page页码,找出最长出现的连续3个页码 : 把问题搞混了,我在琢磨怎么找到频次最高的三个页码,扫一遍统计一下呗。 : 问题是连续三个在一起的 一个最高频次 : 比如 p1 p2 p3 p4 p5 p6 p2 p3 p4 p6 : 连续3个旧市p2p3p4了 : 用hashMap把 三个页吗组成一个key,p1p2p3,然后是p2p3p4,然后是p3p4p5,最后找那个 : haspMap里面value最大的 : Hasmap里面怎么找最大的给忘了
|
J*******o 发帖数: 741 | |
s********l 发帖数: 998 | 5 需要heap吗?
一边扫描 一边记录max 不就可以了~
【在 l*****z 的大作中提到】 : 再用个heap存最大就好了
|
l*****z 发帖数: 3022 | 6 当然要,原来的老二突然变成最大了咋办?你那里去找老二?
【在 s********l 的大作中提到】 : 需要heap吗? : 一边扫描 一边记录max 不就可以了~
|
l*****z 发帖数: 3022 | 7 扫最后的hashmap是可以。我考虑的是follow up的问题,对一个输入流,要求随时能返
回最高频的组合
【在 s********l 的大作中提到】 : 需要heap吗? : 一边扫描 一边记录max 不就可以了~
|
s*******f 发帖数: 1 | |
l**o 发帖数: 356 | 9 不用吧?value里面记录出现次数了
当然要,原来的老二突然变成最大了咋办?你那里去找老二?
【在 l*****z 的大作中提到】 : 当然要,原来的老二突然变成最大了咋办?你那里去找老二?
|
u***n 发帖数: 21026 | 10 骑驴找马真的很烦,忙的要死没时间想面试的事情
直接上了 |
|
|
h****e 发帖数: 2125 | 11 你不是觉得对senior考刷题也正常么?现在知道滋味了?
【在 u***n 的大作中提到】 : 骑驴找马真的很烦,忙的要死没时间想面试的事情 : 直接上了
|
u***n 发帖数: 21026 | 12 我觉得刷题很正常,我准备面试学的知识比我上班都多,蛮好的
就是太忙,两边顾不上,反正我也不要这头驴了,拖着,等我找到马就好了
【在 h****e 的大作中提到】 : 你不是觉得对senior考刷题也正常么?现在知道滋味了?
|
w**b 发帖数: 59 | 13 抛砖:用个hashmap,每次出现p(n)时
map[p(n-2)] ++
map[p(n-1)] ++
map[p(n)] ++
这样map[p(n)]就包含了n到n+2的和。
然后扫描一遍找最大的一个就行了吧。
O(n) |
u***n 发帖数: 21026 | 14 人家要找三个连在一起的,你这个不连在一起
最后找map最大的应该这么写,平时工作不怎么会iterator map,一般都是iterator
array,list所以抓瞎了
应该是 maxvalue= Math.Max(map.getValues())
for(ppp:map.getKeys()){
if(map.get(ppp) = maxvalue)
return ppp
}
唉,唉,唉
【在 w**b 的大作中提到】 : 抛砖:用个hashmap,每次出现p(n)时 : map[p(n-2)] ++ : map[p(n-1)] ++ : map[p(n)] ++ : 这样map[p(n)]就包含了n到n+2的和。 : 然后扫描一遍找最大的一个就行了吧。 : O(n)
|
c*******t 发帖数: 123 | 15 其实你根本不需要map
你只需要set
set 的每一个元素是
struct page {
page 1;
page 2;
page 3;
occurrence;
bool operator>(struct pageX, struct pageY ){
compare first three elements.
}
}
search set, find max occurrence.
【在 u***n 的大作中提到】 : 人家要找三个连在一起的,你这个不连在一起 : 最后找map最大的应该这么写,平时工作不怎么会iterator map,一般都是iterator : array,list所以抓瞎了 : 应该是 maxvalue= Math.Max(map.getValues()) : for(ppp:map.getKeys()){ : if(map.get(ppp) = maxvalue) : return ppp : } : 唉,唉,唉
|
i*****h 发帖数: 1534 | 16 驴还是先骑着好,我现在隐隐的觉得放掉的几个offer应该先接着,有什么offer你先拖
着吧千万别放了。
【在 u***n 的大作中提到】 : 我觉得刷题很正常,我准备面试学的知识比我上班都多,蛮好的 : 就是太忙,两边顾不上,反正我也不要这头驴了,拖着,等我找到马就好了
|
u***n 发帖数: 21026 | 17 这头驴骑不长
【在 i*****h 的大作中提到】 : 驴还是先骑着好,我现在隐隐的觉得放掉的几个offer应该先接着,有什么offer你先拖 : 着吧千万别放了。
|
y**********a 发帖数: 824 | 18
Java 用
3 - pages frequencies
Map, Integer>
把中间结果记下来,最后找最大的不就好了么?
如果要求 stream online processing 的话,
3-pages index
Map, Integer>
能够 siftup 的 heap
MyHeap
用 map 来记录里面的坐标
【在 u***n 的大作中提到】 : Phone interview : 第一个简单atoi, String to Integer : 第二个问题,一个array记录了log访问的page页码,找出最长出现的连续3个页码 : 把问题搞混了,我在琢磨怎么找到频次最高的三个页码,扫一遍统计一下呗。 : 问题是连续三个在一起的 一个最高频次 : 比如 p1 p2 p3 p4 p5 p6 p2 p3 p4 p6 : 连续3个旧市p2p3p4了 : 用hashMap把 三个页吗组成一个key,p1p2p3,然后是p2p3p4,然后是p3p4p5,最后找那个 : haspMap里面value最大的 : Hasmap里面怎么找最大的给忘了
|
j**********3 发帖数: 3211 | |
c****2 发帖数: 83 | 20 安慰一下LZ吧,前几天我面试也挂在这一题,还么有那么多follow ups 呢,当时也不
知道咋回事,脑子就停止了。move on,下次必胜。 |
|
|
f********e 发帖数: 100 | 21 这是哪家?
good luck with your interview tomorrow!
【在 u***n 的大作中提到】 : Phone interview : 第一个简单atoi, String to Integer : 第二个问题,一个array记录了log访问的page页码,找出最长出现的连续3个页码 : 把问题搞混了,我在琢磨怎么找到频次最高的三个页码,扫一遍统计一下呗。 : 问题是连续三个在一起的 一个最高频次 : 比如 p1 p2 p3 p4 p5 p6 p2 p3 p4 p6 : 连续3个旧市p2p3p4了 : 用hashMap把 三个页吗组成一个key,p1p2p3,然后是p2p3p4,然后是p3p4p5,最后找那个 : haspMap里面value最大的 : Hasmap里面怎么找最大的给忘了
|
s****7 发帖数: 19 | 22 抛砖求指教。
三个page连在一起做key,maintain最大occurrence和对应的key
顺便问follow up: stream的情况是不是可以把这个最大count和最大key做成class
variable,这样就支持随时query了吧。 难道还有坑。。?
public class MostFrequentConsequtivePages {
public static String find(int[] pages) {
if (pages == null || pages.length < 3) return "";
Map occur = new HashMap<>();
int p = 2;
int maxOccur = 0;
String maxKey = "";
while (p < pages.length) {
if (pages[p - 2] == pages[p - 1] - 1 && pages[p - 1] == pages[p]
- 1) {
String key = String.format("p%dp%dp%d", pages[p - 2], pages[
p - 1], pages[p]);
int v = occur.getOrDefault(key, 0);
v++;
if (v > maxOccur) {
maxOccur = v;
maxKey = key;
}
occur.put(key, v);
}
p++;
}
return maxKey;
}
public static void main(String[] args) {
System.out.println(find(new int[]{1,2,3,4,5,2,3,4}));
}
} |
n*******s 发帖数: 17267 | 23 你每次更新一下value,比Max大就更新Max好了。
【在 l*****z 的大作中提到】 : 当然要,原来的老二突然变成最大了咋办?你那里去找老二?
|
n*******s 发帖数: 17267 | 24 换头驴骑如何?
开个玩笑,不过这种题的确不该fail。
【在 u***n 的大作中提到】 : 这头驴骑不长
|