1223百度二面
1、topk
Python中的堆为小顶堆,
要实现大顶堆的话需要把原值取相反数
def getLeastNumbers(self, arr: List[int], k: int) -> List[int]: if k==0: return [] arrheap=[-i for i in arr[:k]] heapq.heapify(arrheap) for j in range(k,len(arr)): if arr[j]<=-arrheap[0]: heapq.heappop(arrheap) heapq.heappush(arrheap,-arr[j]) arrheap=[-i for i in arrheap ] return arrheap
2、犯罪人群预测系统,怎么选择特征,如何处理这些特征,如何处理稀疏特征(比如某种欺诈记录出现的情况很少,即使有记录,有效信息也很少)
3、100亿容量的URL黑名单,且内存容量有限(不能把黑名单上所有的数据load到内存上)新来一个URL如何进行查找;
构建多个哈希表,哈希表长度为内存容量,覆盖到整个黑名单,每来一个新URL,在多个哈希表中同时进行搜索比对。
4、验证循环链表