摘要:
题目:如何得到一个数据流中的中位数? 注:使用一个大顶堆和一个小顶堆来实现,大顶堆存储左半部分小的数,小顶堆存储右半部分大的数。插入数时,如果数量为偶数,先插入小顶堆,获取堆顶最小值,然后将其插入大顶堆;如果数量为奇数,先插入小顶堆,获取堆顶最大值,然后将其插入小顶堆。本题大顶堆是用小顶堆实现,将元 阅读全文
摘要:
题目:输入n个整数,找出其中的最小的k个数。 注:使用大顶堆来实现,因为python中只有小顶堆的库,所以对列表的整数取反即可用小顶堆的库实现一个大顶堆,最后将结果再取反。 阅读全文
摘要:
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 注: 方法1:可以通过一个字典,遍历一遍数组,统计出各个数字出现的次数,然后输出次数超过一半的数字 方法2:先取一个目标数,如第一个数字,往后遍历,使用一个变量count进行计数。如果再次出现,则count+1,如果出现其他数字, 阅读全文
摘要:
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 注: 使用三个指针,一个指向合并链表,另两个分别用来遍历待排序的链表,比较两个链表当前节点的大小,使第一个指针指向小的节点,当前节点指针往后遍历一个,直到两个链表其中一个遍历完,然后让第一个指针指向未完列表,拼接起来。 阅读全文