会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
約束の空
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
8
9
10
11
12
13
14
15
16
···
22
下一页
2018年9月27日
LeetCode 10. Regular Expression Matching / 44. Wildcard Matching
摘要: 10. Regular Expression Matching 经典DP题目,比较复杂,需要多复习。 dp[i][j] 表示 s 下标0~i,p 下标0~j 是否能够匹配 dp[i-1][j-1] s[i]==p[j] || p[j]=='.' dp[i][j] = dp[i][j-2] p[j]=
阅读全文
posted @ 2018-09-27 03:12 約束の空
阅读(120)
评论(0)
推荐(0)
2018年9月14日
LeetCode 692. Top K Frequent Words
摘要: 和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)
LeetCode 253. Meeting Rooms II
摘要: 模拟时间流逝,如果当前时间是start,++room;如果是end,呢么--room。但是一个for循环从时间起点到终点太麻烦,可以用一个map来记录,(map是有序的)。 时间复杂度O(nlogn),每次插入map都要logn。 方法二:Sort+Priority_queue 也可以记录最早的结束
阅读全文
posted @ 2018-09-14 10:58 約束の空
阅读(301)
评论(0)
推荐(0)
LeetCode 652. Find Duplicate Subtrees
摘要: 后序遍历,把每个节点的后序遍历用字符串保存下来。 时间复杂度,T(n)=2T(n/2)+n (字符串处理) = O(nlogn),最坏 O(n^2)。 空间复杂度,每个节点都要字符串来存,O(n^2)。
阅读全文
posted @ 2018-09-14 09:07 約束の空
阅读(230)
评论(0)
推荐(0)
LeetCode 767. Reorganize String
摘要: 用backtracing做超时了,代码如下: 本题可以用优先队列+Greedy做。 首先对计算每个字母出现个数,根据个数建立优先队列,个数多的在前。每次选取队列前两个字母,这样一定不会有重复字母在一块。建立优先队列的时候,如果某个字母的出现次数比 (s.size()+1)/2 还要大,说明不行,返回
阅读全文
posted @ 2018-09-14 04:31 約束の空
阅读(287)
评论(0)
推荐(0)
2018年9月12日
LeetCode 4. Median of Two Sorted Arrays
摘要: 题目要求O(log(m+n)),很自然想到二分。但是怎么二分缩小搜索区域比较tricky。找中位数,可以看成找第k个数的问题,比较两个数组第k/2个元素(奇数偶数都可),小的那个数组的前面元素都可以丢掉(不可能是第k大的元素)。 本题的corner case比较多,如k==1,len=0。而且有奇数
阅读全文
posted @ 2018-09-12 07:18 約束の空
阅读(118)
评论(0)
推荐(0)
2018年9月11日
LeetCode 239. Sliding Window Maximum
摘要: Sliding Window 的问题,初始想法是优先队列,保存下标,如果移除的下标正好是优先队列的top,pop()。时间复杂度应该是O(nlogn)。 题目要求用O(n),可以利用deque,队首为最大元素,如果移除的元素是最大元素,pop_front()。对于新的待加元素,pop_back()
阅读全文
posted @ 2018-09-11 11:51 約束の空
阅读(90)
评论(0)
推荐(0)
2018年9月10日
LeetCode 718. Maximum Length of Repeated Subarray
摘要: 如果把数组换成字符串,这道题就是 Longest Common Substring 的问题。当然,这个和 最长子序列 Longest Common Subsequence 是不一样的。 类似求极值的题,都要用DP想一想。本题就可以用DP来做。 dp[i][j] 表示a数组0~i 和 b数组前0~j,
阅读全文
posted @ 2018-09-10 23:21 約束の空
阅读(144)
评论(0)
推荐(0)
2018年9月9日
LeetCode 75. Sort Colors
摘要: 用两个变量指向red和blue的边界,i遍历数组。 如果nums[i]=0,和nums[red]交换,nums[red]为1(因为i遍历nums[red],是0到前面去了,是2到后面去了),++i。 如果nums[i]=2,和nums[blue]交换,这里nums[blue]可能为0或1,因此交换以
阅读全文
posted @ 2018-09-09 22:53 約束の空
阅读(98)
评论(0)
推荐(0)
2018年9月7日
Sliding Window 总结
摘要: 找连续subarray的题,都考虑一下滑动窗口。 形如 sum/product < k 的题,维护一个 <k 的滑动串口,每次 ++end 后,要改变start使得区间能够保持原有性质。 如果是 > k 的题,同样也是维护一个 <=k 的滑动窗口,类似单调栈的处理方法,++end之后,start对应
阅读全文
posted @ 2018-09-07 13:05 約束の空
阅读(247)
评论(0)
推荐(0)
上一页
1
···
8
9
10
11
12
13
14
15
16
···
22
下一页
公告