每日一题还在坚持的刷题,但是有很多已经是做过的题目了,因此改为了每个整理一下当月的习题。11月份的题目很多是链表的操作,以及一些需要思路的题目。另外有两道对于归并思想的利用的题目尤其值得学习。这部分对于题目的讲解偏少,很多具体的细节都在代码中进行了注释,帮助大家理解。
- 140.单词拆分II H(dfs,dp)
- 57.插入区间H(判断区间重叠的标准)
- 31.下一个排列M(思路)
- 328.奇偶链表M(java中链表是地址信息)
- 514.自由之路H(dp)
- 402.移除k位数字M(单调栈)
- 406.根据身高重建队列M(思路)
- 439.反转对H(归并思想应用)
- 327.区间的个数H(前缀和,归并排序的应用,线段树,树状数组,利用哈希数组离散化)
140.单词拆分II H(dfs,dp)
1 | class Solution { |
57.插入区间H(判断区间重叠的标准)
1 | class Solution { |
31.下一个排列M(思路)
1 | class Solution { |
328.奇偶链表M(java中链表是地址信息)
对于链表问题,还是需要想清楚每个listnode保存是地址还是什么。
1 | class Solution { |
514.自由之路H(dp)
1 | class Solution { |
402.移除k位数字M(单调栈)
1 | class Solution { |
406.根据身高重建队列M(思路)
1 | class Solution { |
439.反转对H(归并思想应用)
1 | class Solution { |
327.区间的个数H(前缀和,归并排序的应用,线段树,树状数组,利用哈希数组离散化)
1 | class Solution { |
对于区间的查询还可以借助线段树和树状数组实现。注意到整数的范围可能很大,故需要利用哈希表将所有可能出现的整数,映射到连续的整数区间内。
1 | ==============================这里有一个简单版本的线段树============================== |