摘要:
和top k element一样的题目。创建大顶堆,pop前k个就是所求。nlogn 也可以创建一个大小为k的小顶堆,这样最后留下的就是最大的k个元素。小顶堆和大顶堆正好相反,在cmp函数写的时候,除了a.second>b.second, if (a.second==b.second) return 阅读全文
posted @ 2018-09-14 11:55
約束の空
阅读(145)
评论(0)
推荐(0)
摘要:
模拟时间流逝,如果当前时间是start,++room;如果是end,呢么--room。但是一个for循环从时间起点到终点太麻烦,可以用一个map来记录,(map是有序的)。 时间复杂度O(nlogn),每次插入map都要logn。 方法二:Sort+Priority_queue 也可以记录最早的结束 阅读全文
posted @ 2018-09-14 10:58
約束の空
阅读(301)
评论(0)
推荐(0)
摘要:
后序遍历,把每个节点的后序遍历用字符串保存下来。 时间复杂度,T(n)=2T(n/2)+n (字符串处理) = O(nlogn),最坏 O(n^2)。 空间复杂度,每个节点都要字符串来存,O(n^2)。 阅读全文
posted @ 2018-09-14 09:07
約束の空
阅读(230)
评论(0)
推荐(0)
摘要:
用backtracing做超时了,代码如下: 本题可以用优先队列+Greedy做。 首先对计算每个字母出现个数,根据个数建立优先队列,个数多的在前。每次选取队列前两个字母,这样一定不会有重复字母在一块。建立优先队列的时候,如果某个字母的出现次数比 (s.size()+1)/2 还要大,说明不行,返回 阅读全文
posted @ 2018-09-14 04:31
約束の空
阅读(287)
评论(0)
推荐(0)

浙公网安备 33010602011771号