前言
2019搜狐春招笔试题,两道都ac了,还是挺开心的。
题目
系统设计
会员成长值 = 每天成长值 + 任务成长值。
大体意思是:给定多行,每行第一个值为1给出了某个时间范围每天的成长值,每行第一个值为2给出了某天做任务的任务值。每行中每天的成长值的时间范围可能有重复的,选择成长值最大的来作为当天最大成长值。求出总的会员成长值。
|
|
思路:遍历找出每天成长值的时间范围,然后依次比较每天的成长值,得到最大的成长值作为当天的成长值。
|
|
Top K问题
找出某个序列中第K小的数。
思路:维护一个K大的大根堆,堆顶元素是最大的值,遍历数组序列,如果存在比堆顶元素小的数,将堆顶元素删除,将新值添加进堆。
注:默认所有make_heap操作都是大根堆,也就是所有的第三个参数时less(),如果需要生成小根堆,操作也是一样的,第三个参数全为greater()。
|
|