avatar
I*a
1
1. strstr
2. find first K most frequent number
都是老题,但第二题事先准备时看面经,都是问Kth most frequent number. 解法就
的HashMap建好,然后quickselect。 O(n).
这里要求first K, 想了半天我说那就整个maxheap, pop前K个freq, 再去HashMap
里找,而且考虑到重复频率的可能,还要一个HashSet避免重复频率只找到其中一个元
素。 Code写完,说复杂度太高,让优化,吭哧了半天也没想出咋优化,跪了。。
求大神指点,谢谢!
avatar
j*7
2
2.) partial quicksort
avatar
J*a
3
这第二题,keep一个k 大小的min heap也可以吧,扫完以后,把heap里面的元素pop打
印。
avatar
p*e
4
知道了第K个,前K个自然知道了啊

HashMap

【在 I**********a 的大作中提到】
: 1. strstr
: 2. find first K most frequent number
: 都是老题,但第二题事先准备时看面经,都是问Kth most frequent number. 解法就
: 是的HashMap建好,然后quickselect。 O(n).
: 这里要求first K, 想了半天我说那就整个maxheap, pop前K个freq, 再去HashMap
: 里找,而且考虑到重复频率的可能,还要一个HashSet避免重复频率只找到其中一个元
: 素。 Code写完,说复杂度太高,让优化,吭哧了半天也没想出咋优化,跪了。。
: 求大神指点,谢谢!

avatar
I*a
5
学习了,谢谢!

【在 j**7 的大作中提到】
: 2.) partial quicksort
avatar
I*a
6
我写的就是这样的,o(nlgk)吧应该是? 刚楼上给的解法好像是o(n)+o(klgk)
再问下,找到了freq,回hashmap里找对应元素有什么好办法?

【在 J*********a 的大作中提到】
: 这第二题,keep一个k 大小的min heap也可以吧,扫完以后,把heap里面的元素pop打
: 印。

avatar
J*a
7
lz,这题应该用minheap而不是maxheap吧,
avatar
J*a
8
quicksort返回前K,是不是可以用个pair(freq,num)进行sort,对比freq,最后返
回pair的num。
avatar
h*p
9
返回 第k个跟第前k个数是一样的
同样的写法,就是返回值不一样。第k个返回的是一个数,第前k个返回的就是一个数组
如果是quick select,既然你已经找到第k个了,那在array里之前的都已经是小于第k
个的,一起返回就好了。复杂度应该还是线性
LZ这是哪家的题?感觉难度跟类型像是FB的?strstr需要写kmp吗?

HashMap

【在 I**********a 的大作中提到】
: 1. strstr
: 2. find first K most frequent number
: 都是老题,但第二题事先准备时看面经,都是问Kth most frequent number. 解法就
: 是的HashMap建好,然后quickselect。 O(n).
: 这里要求first K, 想了半天我说那就整个maxheap, pop前K个freq, 再去HashMap
: 里找,而且考虑到重复频率的可能,还要一个HashSet避免重复频率只找到其中一个元
: 素。 Code写完,说复杂度太高,让优化,吭哧了半天也没想出咋优化,跪了。。
: 求大神指点,谢谢!

avatar
f*e
10
请问, 是哪家得?
avatar
I*a
11
我可能名词说的不对吧,我之前准备的找第K个的算法是只保证前K-1个是小于第K
个,后面的都大于第K个,但是前K-1个并不见得有序。 所以the Kth != first K
PocketGems
不要求KMP

k

【在 h**p 的大作中提到】
: 返回 第k个跟第前k个数是一样的
: 同样的写法,就是返回值不一样。第k个返回的是一个数,第前k个返回的就是一个数组
: 如果是quick select,既然你已经找到第k个了,那在array里之前的都已经是小于第k
: 个的,一起返回就好了。复杂度应该还是线性
: LZ这是哪家的题?感觉难度跟类型像是FB的?strstr需要写kmp吗?
:
: HashMap

avatar
j*3
12
能站内短我什么公司么?
avatar
s*g
13
第二题用minheap O(nlogk)速度没问题的 让你优化的其实是内存 面试人如果没有跟你
说输入是sort过的stream 那估计是黑你了 move on吧

HashMap

【在 I**********a 的大作中提到】
: 1. strstr
: 2. find first K most frequent number
: 都是老题,但第二题事先准备时看面经,都是问Kth most frequent number. 解法就
: 是的HashMap建好,然后quickselect。 O(n).
: 这里要求first K, 想了半天我说那就整个maxheap, pop前K个freq, 再去HashMap
: 里找,而且考虑到重复频率的可能,还要一个HashSet避免重复频率只找到其中一个元
: 素。 Code写完,说复杂度太高,让优化,吭哧了半天也没想出咋优化,跪了。。
: 求大神指点,谢谢!

avatar
x*6
14
首先,如果用Max heap,time complexity最好是nlogn;但如果用min heap, 就可以改
善到nlogk。
其次,没必要pop之后再去map里找,可以建一个包含num和freq的class,然后heap里存
这个class的object,这样pop的时候可以轻易print number
[在 ItachiUchiha (仙人掌) 的大作中提到:]
:1. strstr
:2. find first K most frequent number
:...........
avatar
s*a
15
不理解为什么总面这种毫无实用价值的题。。。你一辈子也用不到这种算法。。。
avatar
f*y
16
第二题应该用Moore Voting algorithm, 时间复杂度O(n), 空间复杂度O(1)

1. strstr2. find first K most frequent number都是老题,但第二题事先准备时看
面经,都是问Kth most frequent numb........

【在 I**********a 的大作中提到】
: 我可能名词说的不对吧,我之前准备的找第K个的算法是只保证前K-1个是小于第K
: 个,后面的都大于第K个,但是前K-1个并不见得有序。 所以the Kth != first K
: PocketGems
: 不要求KMP
:
: k

avatar
n*s
17
有时候会用到的,1/1000的公司里的5%的人也许会用到,这种都有现成的算法和程序,
考你是不是见过?

【在 s*a 的大作中提到】
: 不理解为什么总面这种毫无实用价值的题。。。你一辈子也用不到这种算法。。。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。