![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hard
Raintin_coder
白板练成中
展开
-
45 jump-game-ii
这道题目和以前一道能不能跳到最后一点的题目有比较类似的思路,但是要稍微难一点,因为要求出最小的跳数。题目的大体意思是这样的,给定一个一维数组,数组中每一位上的数字表示从该位置能向后一跳的最远距离是多少(之所以说最远是可以在0~最远值之间任意选择一个合适的数值),问到达最后一个位置所经历的最小跳数。这种题目基本上穷举是肯定不行的,因此,要有一些小的处理技巧。另外,值得注意的是,这道题给出的所有测...原创 2018-10-18 21:58:24 · 233 阅读 · 0 评论 -
327. count-of-range-sum
这道题难度还是挺大的,基本上hard的题目都要费点脑子,根据一般的办法,求和并暴力的复杂度是O(N^2),而题目中明确说O(N^2)是naive,所以,该题目的难点在于如何降低时间复杂度。 题目大意:给定一组数和一个区间,求改组数中所有满足该区间加和的子数组的个数,就是从数组中挑选一组连续的数,如果选出的数之和满足条件,则视为一组有效数,如果不满足条件,则为无...原创 2018-11-03 14:57:33 · 303 阅读 · 0 评论 -
212. word-search-ii
这道题乍一看基本的思路就是深度优先遍历,如果根据一个词,遍历一遍整个数据表,那复杂度显然是比较高的,每个词都要遍历一遍二维数组表,而且每个字母要做一次深度优先遍历,这种暴力寻找的做法空间没有浪费,但是时间复杂度太高,起初在做这道题的时候,也没有较好的解决办法。但是想到前面有一个题目字典树的做法,通过空间来换取时间上的高效,因此想到这里,就先对原先的字符串数组构建字典树。 ...原创 2018-10-27 15:28:12 · 147 阅读 · 0 评论 -
72. edit-distance
这道题目在大多数公司的笔试题目中都能找到踪迹,以前也遇到过很多这样的情况,其中蕴含的思想在字符串匹配,以及字符串其他操作上使用的非常丰富,而且,最重要的是,这是一类深度优先遍历转换为动归的典型题目。 题目的大致意思是,给定两个字符串,可以通过三种操作变化使两个字符串变为一样,分别是,修改,插入,删除。而总修改次数被称为两个字符串的距离,求出两个字符串变为相同字符串...原创 2018-10-24 12:11:53 · 178 阅读 · 0 评论 -
84. largest-rectangle-in-histogram
这道题难度还是蛮大的,主要是不太好想,反正第一次我是没想出来,后来看了大神的思路后,才慢慢理解的。 题目意思是:给定一组宽度为1,高度不定的矩形,求这些矩形组成的最大面积是多少,实际上大矩形的高度取决于最短的那个。 具体的思路是,利用栈来保持一个递增的序列,比如输入1 2 3 4 5,就将其入内,如果此时再出现一个4,则需要将5弹出,并计算的当前...原创 2018-10-25 11:38:15 · 419 阅读 · 0 评论 -
76. minimum-window-substring
这道题细节处理起来还是有点难度,太不是难到没有思路的那种。 题目大意:给定两个字符串,一个是原始匹配串,另一个是目标串,在匹配串中选寻找一个最短的字串,包含目标串的所有字符,重复情况要考虑。例如:abdccab 目标串是 abccd,则原始匹配串中最短的字符串是dccab 思路,首先,并不是KMP求目标子串,条件没有那么严格,所以,先要记录目标串中每...原创 2018-10-25 10:42:13 · 427 阅读 · 0 评论 -
57. Insert Interval
这道题刚开始有点难想清楚,所以,代码上可能就会比较麻烦,但是一旦想清楚了,就会简单很多。个人感觉难度不算太大。 题目大体意思:给定一组互不相交的升序区间,再给定一个需要加入该组的区间,求出最终的包含的区间范围,要求如何新加入的区间与原有区间之间出现了重叠,就将其合并,从而得到最终结果。比如:原本的区间是包含:[1, 5],[6, 7] 给定的新区间[2,6],则最...原创 2018-10-22 15:39:35 · 206 阅读 · 0 评论 -
44.wildcard-matching
这道题也是正则表达式类的题目,和10题有很大程度的相似度,个人感觉难度上来讲,这道题要简单一点,有一点需要注意的是这道题不能用递归来解决,看到有个测试用例会超时,但也可能是我自己的思路上有缺陷,如果有大神,肯请指点。 这道题是*号表示任何字符串包括空串:"",?表示可以与任意一个字符串匹配,所以,最特殊的还是*号,我们分情况讨论,1、假设当前p[i] = s[j] 或...原创 2018-10-17 17:53:50 · 262 阅读 · 0 评论 -
42.trapping-rain-water
以前在听算法课的时候,有一个人说过这样一句话,凡是那道题没有思路的9成要用动态规划,当然可能说的有点绝对,但是不无道理,就是说,一般的题目我们遇到后能立即想到思路,哪怕是那种很麻烦的,但是动态规划往往是麻烦的也不一定能想出来。而动态规划的难度也确实比较大,其灵活性很高,他不同于字符串,数组,排序这种的某一类问题,他是一种思想,渗透到各种各样的问题的当中,而leetcode有关动归的问题...原创 2018-10-17 16:30:05 · 838 阅读 · 0 评论 -
51.N-Queens
这道题是一类比较经典的题目,和数独以及leetcode上的其他题目一起构成了比较典型的一个类型题集,本质就是迷宫问题,基本的解决算法就是深度优先遍历DFS。 题目的大致意思是:在一个棋盘上,每一行和每一列都有且只能有一个Q棋子,且45度对角线上也只能由一个Q棋子。 实际上我们就一行一行的放置,第一行选择一个位置放置Q,接着到第二行放置,因为深度遍历的时...原创 2018-10-22 12:18:11 · 139 阅读 · 0 评论 -
41. first-missing-positive
这道题呢技巧性比较强,对于像我这样的新手第一次一般是想不出来这种方法的。 题目的大意是找出一个int数组中第一个缺失的正整数,比如:0,1,3,5. 这组int数组中,第一个缺失的正整数是2,当然最直观的思路是我从1到n一个一个到数组中去寻找,看第一个缺失的谁,这样复杂度是O(N^2),而这种思路代码比较简单,另一种比较新颖的思路是利用下标和正整数之间的关系,来完成寻找,...原创 2018-10-17 15:29:32 · 207 阅读 · 0 评论 -
321. create-maximum-number
这道题挺好的,有一定的难度,把一般使用的merge排序有了更灵活的应用,也算是开了眼界。而我也是挂在不知道该如何灵活使用merge排序上了。 题目大意是:给定两个数组,分别表示两个数字,比如,给定要给数组中有两个元素,2,1,表示的是:21,就这个意思。在每个数组各个数字相对位置不变的情况下,挑选固定数量的数字组成一个新的数字,要求这个数字是最大的。 ...原创 2018-11-02 22:27:05 · 190 阅读 · 0 评论