随笔分类 - 刷题
摘要:329. Longest Increasing Path in a Matrix https://www.cnblogs.com/grandyang/p/5148030.html 这个题是在二维数组中找递增序列的最长长度。 因为使用dfs都是从当前位置进行搜索,所以每次dp计算的值是以当前为起点的最
阅读全文
摘要:334. Increasing Triplet Subsequence https://www.cnblogs.com/grandyang/p/5194599.html 要求时间复杂度为O(N),空间复杂度为O(1)。 解题思路:用a来记录最小的数,b来记录次小的数。如果当前数比之前的数还小,则需要
阅读全文
摘要:403. Frog Jump https://www.jiuzhang.com/solution/frog-jump/#tag-highlight-lang-cpp 青蛙一次跳多少由上一次跳多少决定,上一次跳了k步,那么这次可以跳k-1,k,k+1这么多。从0开始,第一次只能跳一步,问能否调到最后一
阅读全文
摘要:166. Fraction to Recurring Decimal https://www.cnblogs.com/grandyang/p/4238577.html 用一个哈希表判断余数是否重复,重复了就有无限循环小数,就可以停止加括号了 自己又写了一遍
阅读全文
摘要:字典树(查找树) 26个分支作用:检测字符串是否在这个字典里面插入、查找 字典树与哈希表的对比:时间复杂度:以字符来看:O(N)、O(N) 以字符串来看:O(1)、O(1)空间复杂度:字典树远远小于哈希表 前缀相关的题目字典树优于哈希表字典树可以查询abc是否有ab的前缀 字典树常考点:1.字典树实
阅读全文
摘要:374. Guess Number Higher or Lower 二分查找就好
阅读全文
摘要:50. Pow(x, n) 372. Super Pow https://www.cnblogs.com/grandyang/p/5651982.html https://www.jianshu.com/p/b256bd531df0 做这个题之间先了解两个公式: 公式一:a^b mod c = (a
阅读全文
摘要:https://www.cnblogs.com/grandyang/p/4247718.html 逆波兰表达式就是把操作数放前面,把操作符后置的一种写法。用stack解决就好了。 因为tokens里面存的是string,所以判断+、-等符号时,都要是双引号"",不能用平时字符的单引号''。 并且将s
阅读全文
摘要:73. Set Matrix Zeroes 题目要求是二维数组中出现0的地方所在行和所在列全变成0。 题目的关键是O(1)的时间复杂度,也就是在原地做。 思路:将第一行、第一列,除了(0,0)这个点的其他所有点用来记录这一行或者这一列是否出现0。 具体做法:先判断第一行第一列本身是否有0,用两个变量
阅读全文
摘要:https://www.cnblogs.com/grandyang/p/4395963.html https://www.jianshu.com/p/cf82ce91dc3d 找第一个消失的数,比如[2,3,4],第一个消失的就是1 还是把值和索引相对应重新排数组,重新生成数组后,找第一个不满足的值
阅读全文
摘要:395. Longest Substring with At Least K Repeating Characters https://www.cnblogs.com/grandyang/p/5852352.html 题目的要求是找一段字符串,这段字符串中每个单词出现的次数都必须至少超过k次,求满足
阅读全文
摘要:这两个题几乎一样,只是说611. Valid Triangle Number满足大于条件,259. 3Sum Smaller满足小于条件,两者都是先排序,然后用双指针的方式。 611. Valid Triangle Number 判断这个数组能组成三角形的个数,利用两边之和大于第三边 https:/
阅读全文
摘要:https://www.jianshu.com/p/399a92e8b389
阅读全文
摘要:380. Insert Delete GetRandom O(1) 实现插入、删除、获得随机数功能,且时间复杂度都在O(1)。实际上在插入、删除两个功能中都包含了查找功能,当然查找也必须是O(1)。 数组可以实现插入、删除、获得随机数O(1),但查找就不行了。(当然对于数组,直接删除的时间复杂度不是
阅读全文
摘要:384. Shuffle an Array c++ random函数:https://www.jb51.net/article/124108.htm rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数。 这样,如果你要产生0~10的10个整数,可以
阅读全文
摘要:787. The Maze https://www.cnblogs.com/grandyang/p/6381458.html 与number of island不一样,递归的函数返回值是bool,不是void。 maze = -1用来表示已经访问的节点。 dp用来记录每个位置的是否能访问,如果dp
阅读全文
摘要:870. Advantage Shuffle 思路:A数组的最大值大于B的最大值,就拿这个A跟B比较;如果不大于,就拿最小值跟B比较 A可以改变顺序,但B的顺序不能改变,只能通过容器来获得由大到小的顺序,并且必须存储相应的index,因为最终需要将选择的A的数值存入与这个B相对应的index下 13
阅读全文
摘要:914. Flip Game https://www.cnblogs.com/grandyang/p/5224896.html 从前到后遍历,遇到连续两个'+',就将两个加号变成'-'组成新的字符串加入到结果中。 913. Flip Game II 这个题是看先手变换的是否会赢。 方法与Flip G
阅读全文
摘要:874. Walking Robot Simulation https://www.cnblogs.com/grandyang/p/10800993.html 每走一步(不是没走commands里的一个数字)计算到原点的距离,每走一步都可能遇到障碍物,需要将障碍物的坐标进行存储,以判断是否停止行走。
阅读全文
摘要:149. Max Points on a Line https://www.cnblogs.com/grandyang/p/4579693.html 斜率需要考虑分母为0的情况。具体需要考虑两种特殊情况:一是在x相等的时候,斜率是无穷大;二是与当前节点完全相同的时候。 解法一: 用hash-map存
阅读全文
浙公网安备 33010602011771号