![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode刷题记
文章平均质量分 65
Mingting Liu
“君子忧道不忧贫,谋道不谋食。”
展开
-
代码随想录算法训练营第三十一天| 455.分发饼干,376. 摆动序列,53. 最大子序和
贪心算法其实没有什么规律可言,不用花心思去研究其规律,没有思路立刻看题解。基本贪心题目有两个极端,要么特别简单,要么死活想不出来。学完贪心再看动态规划,就会了解贪心和动态规划的区别。原创 2023-12-01 20:04:45 · 348 阅读 · 0 评论 -
代码随想录算法训练营第二十九天| 491.递增子序列,46.全排列,47.全排列 II
本题与上题的不同在于数组中会有重复的元素,但我们最后要求的是不重复的全排列,可以用used数组来存储数组元素状态,先对nums数组排序,used[i-1] == false说明同一层i-1使用过,used[i-1] == true说明同一树枝使用过,而明显我们需要处理的是同层去重,即used[i-1] == false,虽然使用used[i-1] == true也同样能做出来,但是树的宽度和深度都会变大,时间花销不划算。代码如下:(上述两个坑都踩了一遍)原创 2023-11-20 20:52:03 · 41 阅读 · 0 评论 -
代码随想录算法训练营第二十八天| 93.复原IP地址,78.子集,90.子集II
但在解题的过程中卡了很久,对照看了题解和自己的代码,思路是一致的,最后发现是我在判断数字合法的时候的条件是nums<255,导致没结果输出,改成nums<=255后,答案就正确了,这些小细节还是要仔细些才行。本题是基于上题,难度稍微加大了些。首先对于数组中有重复元素,又要求结果中不包含重复子集的问题,一般需要先对数组进行排序;其次去重时,需要判断是树层去重,还是树枝去重。此题明显是一个分割问题,利用回溯模版即可解决。回溯的终止条件为字符串s正好能被完整分割为4段且下一次分割的位置在字符串末尾。原创 2023-11-15 15:13:27 · 37 阅读 · 0 评论 -
代码随想录算法训练营第二十七天| 39. 组合总和,40.组合总和II,131.分割回文串
这里需要注意的是 i > startIndex 而不是 i > 0,如果写成i > 0会少很多结果,因为树枝回溯时当i 等于 startIndex且 i > 0,会直接 continue 掉,例如candidates=[10,1,2,7,6,1,5],target 为 8,若写为i > 0,则会漏掉[1,1,6],因为第 2 个 1 会被 continue 掉。判断回文:具体来说,给定一个字符串 s,长度为 n,它成为回文字符串的充分必要条件是s[0]==s[n-1]且s[1:n-2]是回文字符串。原创 2023-10-31 09:51:22 · 40 阅读 · 0 评论 -
代码随想录算法训练营第十六天| 104.二叉树的最大深度,111.二叉树的最小深度, 222.完全二叉树的节点个数
在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。对于情况二,分别递归左孩子,和右孩子,递归到某一深度一定会有左孩子或者右孩子为满二叉树,然后依然可以按照情况1来计算。可以看出如果整个树不是满二叉树,就递归其左右孩子,直到遇到满二叉树为止,用公式计算这个子树(满二叉树)的节点数量。本题可以使用前序遍历,也可以使用后序遍历,使用前序求的是深度,使用后序求的是高度。所以第1~(h-1)层的节点数是满的。原创 2023-09-04 11:24:15 · 28 阅读 · 0 评论 -
代码随想录算法训练营第十五天| 层序遍历,226.翻转二叉树,101.对称二叉树
二叉树的层序遍历,就是图论中的广度优先搜索在二叉树中的应用,需要借助队列来实现,上面10个题基本是用一份代码模版来做的,还比较简单。原创 2023-09-03 17:33:48 · 31 阅读 · 0 评论 -
代码随想录算法训练营第十四天| 二叉树理论基础,递归遍历,迭代遍历,统一迭代
int val;原创 2023-09-01 18:11:37 · 106 阅读 · 0 评论 -
代码随想录算法训练营第十三天| 239. 滑动窗口最大值,347.前 K 个高频元素
代码随想录算法训练营原创 2023-08-31 11:12:11 · 25 阅读 · 0 评论 -
代码随想录算法训练营第十一天| 20. 有效的括号 ,1047. 删除字符串中的所有相邻重复项 ,150. 逆波兰表达式求值
代码随想录算法训练营原创 2023-08-30 09:38:46 · 24 阅读 · 0 评论 -
代码随想录算法训练营第九天| 28. 实现 strStr(),459.重复的子字符串 ,字符串总结 ,双指针回顾
代码随想录算法训练营原创 2023-08-27 22:06:40 · 28 阅读 · 0 评论 -
代码随想录算法训练营第三天| 链表理论基础笔记,203.移除链表元素 ,707.设计链表,206.反转链表
代码随想录训练营原创 2023-08-13 00:45:01 · 18 阅读 · 0 评论 -
代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组,59. 螺旋矩阵 II,总结
代码随想录训练营原创 2023-08-11 00:55:38 · 157 阅读 · 0 评论 -
代码随想录算法训练营第一天| 704. 二分查找、35.搜索插入位置、27. 移除元素
代码随想录训练营原创 2023-08-09 23:47:16 · 192 阅读 · 0 评论 -
LeetCode刷题记——两数之和(C语言)
题目描述:给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], tar...原创 2021-05-13 23:04:00 · 294 阅读 · 0 评论