leetcode
文章平均质量分 52
ICE2302
记录分享学习过程
展开
-
Morris算法学习记录
Morris算法是一种可以用于遍历二叉树的算法,在刷题的时候发现实现二叉树前中后和层序遍历除了递归和迭代外,还有一种morris算法,可以实现二叉树的前中(后)遍历。主要使用回溯,但是他的回溯是回溯左节点不为空的节点两次(也正是因为最多只能访问某个节点两次,所以没有办法通过直接输出数值实现后序遍历),理解之后发现原来之前就见识过这种算法,只是当时不知道这种方法是一种算法,当时理解的还挺艰难的hhhhh我是看这一篇bolg理解的,我称之为。原创 2023-05-07 18:00:00 · 53 阅读 · 0 评论 -
Leetcode 85t最大矩形----做题有感
我当时定义的dp二维数组的意义是dp[i] [j]是从matrix[0][0]开始,以matrix[i ][j]为矩形右下角的最大矩形面积,可能也是我dp数组定义错了吧,反正怎么都写出变化方程,就看了题解。3.计算好dp之后,就可以转化成84题的处理方法了,do数组按行进行遍历,dp每行就代表一个柱状图,dp中每行每个元素的值,代表一个柱状图中每个柱子的高度,从上到下遍历和从下到上遍历在这里没有区别。在计算好连续的1之后,就可以按行寻找每行的最大矩形面积,直接使用84题中的方法即可。原创 2023-04-26 08:00:00 · 75 阅读 · 0 评论 -
KMP算法
在看到这篇文章之前看了很多算法书(算法导论,算法第四版,数据结构与算法分析,…找资料的时候还发现很多算法书都没有写KMP算法,甚至有的写了字符串章节却没有KMP和BM算法)写的不是看不懂就是太晦涩了,这篇文章看了有一个小时,讲的非常详细,很多问题都考虑到了,我愿称之为“KMP最详细的解释”,而且作者使用C++写的,非常容易理解,不过我觉得在解释next数组时3.3.4部分加上一个可以递归两次的例子的整体的图片讲解就更好了,当时这个地方不懂在纸上走了好多遍才懂。原创 2023-04-09 18:00:00 · 53 阅读 · 0 评论 -
Leetcode 4t 记录
´༎ຶД༎ຶ`) ,对着题看了十几分钟,在纸上写了画画了写还是没想出来怎么写,然后就看了官方题解,讲的非常清楚,但是代码写的注释不多,我写出来之后,把自己理解的注释了下。主要还是记录一下这个题,hard难度的确是难;有兴趣的uu可以直接点击。原创 2023-03-26 18:00:00 · 39 阅读 · 0 评论 -
Leetcode649t做题有感
在继续运行,此时正确的想法就和我的想法有了分歧,如果按照我的做法,继续遍历下标为2的元素’D’,那么将把R队列中的队首议员出队。直接点就是总是禁止当前议员的后面还未执行权利的对方议员的权利,这样后面的己方议员就会减少权利禁止的机会。分别用两个双端队列将元素’D’和‘R’对应的下标保存起来,然后对senate进行遍历,当当前元素是’D‘时,将R队列的队头出队,相当于禁止一名议员的权利。当两个队列中一个为空时,证明空队列对应的议员们的权利已经被另一派的议员禁止了,同时非空的队列对应的议员阵营胜利。原创 2023-03-18 18:00:00 · 120 阅读 · 0 评论 -
C++实现查找只出现一次的数字
C++实现查找只出现一次的数字问题描述范围限制:2 <= nums.length <= 3 * 104-231 <= nums[i] <= 231 - 1除两个只出现一次的整数外,nums 中的其他数字都出现两次问题分析我的思路是,既然这个数组里有出现两次的元素,且只有两个元素只出现依次,那么就只需将数组中的元素遍历进行比较,找到相同的元素,让它们的值为0,那么就只剩下出现一次的元素,将这两个元素放到新创建的数组 x 中并返回。但显然有一个漏洞——如果这个不重复原创 2021-10-30 20:00:00 · 1117 阅读 · 0 评论 -
C++解决最小花费爬楼梯问题(爬楼梯升级版)
C++解决最小花费爬楼梯问题(爬楼梯升级版)问题描述问题分析这个题像极了0-1背包问题。实际上还是动态规划问题,从子问题来看,就是看走一步到达的阶梯所要求的体力花费和走两步到达的阶梯所要求的体力花费哪一个更小,总的来看就是看这些子问题的和哪个更小(0-1背包则是看哪个更大)。简单来说就是在这种可以分解成子问题的问题中,如果所有子问题都是最优解,那么这个问题的解就是最优的。理解了这个问题,代码就比较容易实现了。问题解决(代码)class Solution {public: int mi原创 2021-10-28 20:00:00 · 695 阅读 · 0 评论 -
C++解决爬楼梯问题低配版
C++解决爬楼梯问题低配版问题描述问题分析这实际上和斐波那契数数列很相似,可能不太好理解。对于这个问题从动态规划的角度来看,把爬n阶楼梯的方法看做爬n-1阶楼梯和迈出的一步的方法或者n-2阶楼梯和迈出两步的方法来看。而n-1阶楼梯又可以看成爬n-2阶楼梯和迈出的一步的方法或者n-3阶楼梯和迈出两步的方法来看。图解如下图:由上图就可以很清楚的看出来,走爬n阶楼梯的方法数就是爬n-1阶楼梯和迈出的一步的方法或者n-2阶楼梯和迈出两步的方法数的和。那么利用递归的思想就可以解决此问题问题解决(代码)原创 2021-10-28 08:00:00 · 1099 阅读 · 0 评论 -
C++实现泰波那契数
C++实现泰波那契数问题描述泰波那契序列 Tn 定义如下:T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2给整数 n,请返回第 n 个泰波那契数 Tn 的值。链接:https://leetcode-cn.com/problems/n-th-tribonacci-number一开始我还是用的和写斐波那契数列一样的方法class Solution {public: int tribonacci(int n)原创 2021-10-27 08:00:00 · 203 阅读 · 0 评论 -
C++实现斐波那契数列
C++实现斐波那契函数这是我第一次写代码,近期会分享一些在力扣刷的题,如果有不完善的地方还请指正。class Solution {public: int fib(int n) { if(n==1||n==0) { return n; } else { return fib(n-1)+fib(n-2); } }};int main(){原创 2021-10-26 20:25:36 · 850 阅读 · 0 评论