leetcode刷题分类汇总
文章平均质量分 61
0x3fffffff
这个作者很懒,什么都没留下…
展开
-
技巧:如何用rand7实现rand10
把7看成一个筛子。这等于掷出两个筛子,将筛子的两个数字看成一个7进制的数字的两位,得到range :00~66(7进制),一共49个数字。将0~39这40个数字,分成10份,对10取余即可。通用方法:如何用数字A实现B;用logA B上取整计算数字位数,得到整体数字取值范围。范围对B做整除,得到有效数字范围。有效数字按B份等分即为所求。...原创 2021-12-09 23:36:34 · 127 阅读 · 0 评论 -
二叉树与遍历
1、树的遍历及其变形用后序遍历做得更好bool IsBalanced(root) if(root == NULL) return true if(LastOrder(root) == -1) return falsereturn trueint LastOrder(root)//这里,LastOrder返回的所有值,-1是一种状态,其他的值都为树高度。因此,-1是需要传递的 if(root == NU...原创 2021-10-26 21:38:48 · 86 阅读 · 0 评论 -
编程出错问题-算法方法
最好不要用for(i = 0; i <a.size();i++),而用for(i = 0 ; i <size;i++),因为a.size(),对于数据结构来说,运行过程中可能会改变大小,比如栈会出栈入栈。所以用变量存储初始大小原创 2021-08-01 02:33:22 · 311 阅读 · 0 评论 -
lt刷题-堆&优先队列
1、堆的建立过程:heapy()2、步骤1:用一个数组记录当前每个index对应的bucket/vat值,每次从数组中取出最大的(max_element),将该index的bucket+1,再把新的值存入数组。计算当前组的count+bucket/val(向上取整)。步骤1重复若干次,每次结果放入一个优先队列,从优先队列找最小值。...原创 2021-09-13 22:55:03 · 77 阅读 · 0 评论 -
编程出错问题:lc
1、Line 1034: Char 9: runtime error: reference binding to null pointer of type 'int' (stl_vector.h)容器内出现问题,即vector长度为4但需要访问vector[5]2、数组去重sort(a.begin(),a.end())a.erase(unique(a.begin(),a.end()),a.end())...原创 2021-09-01 17:54:09 · 469 阅读 · 0 评论 -
贪心的策略
贪心的本质问题:局部最优和全局最优的关系。每次记录最小、次小,如果还有比他们大的,则为真for e:nums if mins> e min = e else if medium > e medium = e else return true按区间终点排序。sort(nums) ...原创 2021-08-17 11:02:52 · 86 阅读 · 0 评论 -
万能的回溯
回溯几乎是万能解。1、全排列问题原创 2021-07-26 23:17:07 · 123 阅读 · 0 评论 -
lt-动态规划
动态规划的重点是:1)找状态转移方程;2)计算边界情况。70:a[n] = a[n-1]+a[n-2]; a[1] = 1,a[2] = 2;98:a[n] = max(a[n-2] + nums[n],a[n-1]),即每次计算都尽量把原来较大的部分保留。120:arr[i][0] = arr[i-1][0]+triangle[i][0];arr[i][j] = min(arr[i-1][j-1],arr[i-1][j]) + triangle[i][j];arr...原创 2021-07-25 22:31:06 · 143 阅读 · 0 评论 -
二分/双指针/滑动窗口
二分查找和双指针放一起写了。二分查找自己是双指针的特殊情况。原创 2021-07-20 23:00:02 · 169 阅读 · 0 评论 -
BFS/DFS
lt733:岛屿渲染面积方法:从起点开始BFS遍历补颜色。注意判断先每个index的上下界。lt695:岛屿面积方法:仍然是以1开始做BFS遍历,遍历时将找到的顶点置为0即可。注意在push入栈的时候,size已经等于1,grid[起点]已经置为0了。lt617:...原创 2021-07-20 21:45:33 · 95 阅读 · 0 评论