70-爬楼梯以及进化版

力扣70

https://leetcode-cn.com/problems/climbing-stairs/

动态规划经典题,没有之一

还是那三句话

  1. 定义动态规划数组的含义
  2. 找出关系式
  3. 找初始值

63-不同路径II

力扣63

https://leetcode-cn.com/problems/unique-paths-ii/submissions/

dp题,不同路径加入了障碍物,但影响不了多少,只多了判断条件:

  • 如果当前为障碍,dp[i][j]为0
  • 如果左边为障碍,dp[i][j] = 上面
  • 如果上面为障碍,dp[i][j] = 左边
  • 否则才是dp[i][j] = 左边 + 上面

901-股票价格跨度

力扣901

https://leetcode-cn.com/problems/online-stock-span/

单调栈题目,我也不清楚力扣的输入样例是什么,但是直接return 1的话可以测试一下
看到已经返回了null, 1, 1…因此可以判断只需要完成这个类的next方法即可

496-下一个更大元素I

力扣496

https://leetcode-cn.com/problems/next-greater-element-i/

单调栈简单题,找下一个最大值,因此用递减栈遍历nums2,因为nums1要定位查,所以将结果放入map中

这题没什么好讲的了,所谓简单题,模板一套就vans了

字符串中的成对括号问题处理技巧

1. 前言

遇到成对括号问题,我相信大家第一个想到的就是栈,因为我们自从翻开严蔚敏的《数据结构》开始,就习惯于将“栈”和“成对括号”联系起来。

其实还是挺麻烦的,遍历一遍,遇到(入栈,)出栈,最后判断栈是否为空,中间还夹杂着一些其他技巧(栈底是)就直接结束之类的)。诚然,这是一个好方法,但是做题的时候讲究快速编写,研究的时候才讲究快速运行,而且通常题目不仅仅考括号匹配,括号只是题目的一部分,这时候,我们写起来就比较复杂。看我这新思路!

739-每日温度

力扣735

https://leetcode-cn.com/problems/daily-temperatures/submissions/

自从上次做了最大矩形单调栈题目之后,最近笔试见了两题单调栈的题目了,心理作用??赶紧补吧…

题目描述的不是很清楚(可以看英文版比较明白),总之,是说往后找到比当前大的(温度高的),然后记录下标距离。

515-在每个树行中找最大值

力扣515

https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row/

也就是找每行的最大值

思路一:bfs层次遍历每行嘛,找最大值并加入res

对1000000007取模和0x3f3f3f3f

1. 结果可能很大的题目会要求对1000000007取模(1八个零7),为什么?
最终我在柳神的博客下找到了答案

  • 1000000007是一个质数(素数),对质数取余能最大程度避免冲突

  • int32位的最大值为2147483647,1000000007同一个量级,足够大

  • int64位的最大值为2^63-1,对于1000000007来说它的平方不会在int64中溢出

  • 所以在大数相乘的时候,因为(a∗b)%c=((a%c)∗(b%c))%c,所以相乘时两边都对1000000007取模,再保存在int64里面不会溢出

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×