![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
代码随想录
文章平均质量分 87
代码随想录一刷博客
Camellia__Wang
名不显时心不朽,再挑灯火看文章
展开
-
代码随想录算法训练营第一天| leetcode704. 二分查找、35.搜索插入位置、34.在排序数组中查找元素的第一个和最后一个位置、27. 移除元素
leetcode704. 二分查找、35.搜索插入位置、34.在排序数组中查找元素的第一个和最后一个位置、27. 移除元素原创 2024-01-11 10:58:45 · 836 阅读 · 0 评论 -
代码随想录算法训练营第二天|Leetcode 977 有序数组的平方、209 长度最小的子数组、59 螺旋矩阵
这个时间复杂度是 O(n + nlogn), 可以说是O(nlogn)的时间复杂度,但为了和下面双指针法算法时间复杂度有鲜明对比,我记为 O(n + nlog n)。换句话说就是两个指针移动方向是否相同,对于本题简单分析可知,由于给定的是有序数组,所以数组两侧元素的平方。给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。给你一个按非递减顺序排序的整数数组 nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。原创 2024-01-11 23:32:18 · 527 阅读 · 0 评论 -
代码随想录算法训练营第三天|Leetcode 203.移除链表元素、 707.设计链表 、206.反转链表
为什么要保存一下这个节点呢,因为接下来要改变 cur->next 的指向了,将cur->next 指向pre ,此时已经反转了第一个节点了。最后,cur 指针已经指向了null,循环结束,链表也反转完毕了。不过因为单链表的特殊性,只能指向下一个节点,刚刚删除的是链表的中第二个,和第四个节点,那么如果删除的是头结点又该怎么办呢?由于原来的链表头节点为第一个元素,所以删除该元素只需head=head->next,之后释放该节点即可。今天的题目很好的锻炼了我对链表操作的掌握,也发现了之前忽略掉的小细节(原创 2024-01-12 22:27:03 · 843 阅读 · 1 评论 -
代码随想录算法训练营第四天| Leetcode 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、160. 链表相交 、142.环形链表II
(2)当二者均不为空时,创建两个指针pA,pB分别指向两个链表的头节点,然后将两个指针依次遍历两个链表的每个节点。(2)fast首先走n + 1步 ,为什么是n+1呢,因为只有这样同时移动的时候slow才能指向删除节点的上一个节点。,今天的第三题和第四题就是很好的例子,一开始我只能想出最简单的方法,但是通过理解其他人的方法,我也感觉到有很大的长进。,而由于交换这两个节点需要先找到第一个节点的前一个节点,而头节点又没有前一个节点,因此本题。给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。原创 2024-01-13 23:19:10 · 940 阅读 · 0 评论 -
代码随想录算法训练营第五天| Leetcode 54.螺旋矩阵、Leetcode 904.水果成篮
没做完,之后有时间再去尝试。思路也是滑动窗口,但是还要考虑很多细节,先放一放。由于选定起始采摘之后只能向右移动,并且要找到水果最大数目。最后,如果以上文章有错误,请在评论区或私信指出,让我们共同进步!对于本道题目,我们需要做的是用两个指针模拟一个窗口,根据窗口内。很像,不过由于这道题的矩阵不一定是正方形,我的想法是。今天正好有时间做一下之前的拓展题目,不过还有一道。联系起来,C++中STL有一种结构叫哈希表。,这种结构可以便于我们快速查找成对数据,,返回矩阵中的所有元素。不断向后滑动窗口,并。原创 2024-01-14 22:47:01 · 429 阅读 · 1 评论 -
代码随想录算法训练营第六天| Leetcode 242.有效的字母异位词、349. 两个数组的交集、202.快乐数、1. 两数之和
最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-01-15 22:36:07 · 768 阅读 · 0 评论 -
代码随想录算法训练营第七天| Leetcode 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和
题目链接:Leetcode 454.四数相加II题目描述:给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。思路:由于本题是四个数组,只要找到A[i] + B[j] + C[k] + D[l] = 0就可以,不用考虑有重复的四个元素相加等于0的情况。使用哈希法很容易解决本题。本题解题步骤:(1)首先定义 一个unordered_map,key放a和b两数之和,value 放a和b两数之和出原创 2024-01-16 17:07:32 · 870 阅读 · 1 评论 -
代码随想录算法训练营第八天| Leetcode 344.反转字符串、541. 反转字符串II、替换数字、151.翻转字符串里的单词、右旋字符串
今天字符串的内容还算比较轻松,主要是学习。原创 2024-01-17 20:27:42 · 1023 阅读 · 0 评论 -
代码随想录算法训练营第九天| Leetcode 28.找到字符串第一个匹配项的下标、459.重复的子字符串
一个人能走的多远不在于他在顺境时能走的多快,而在于他在逆境时多久能找到曾经的自己。 ——KMP原创 2024-01-19 23:08:08 · 927 阅读 · 1 评论 -
代码随想录算法训练营第十天| Leetcode 232.用栈实现队列、225. 用队列实现栈
今天的两道题不涉及什么算法,主要是练习栈和队列的操作以及底层原理的简单实现。原创 2024-01-20 16:55:54 · 418 阅读 · 0 评论 -
代码随想录算法训练营第11天| Leetcode 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、50. 逆波兰表达式求值
栈的思想应用还是很广泛的,例如递归调用原理、操作系统中进出目录的过程、各种匹配问题的算法题等等。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-01-20 19:49:31 · 1032 阅读 · 0 评论 -
代码随想录算法训练营第13天| Leetcode 239. 滑动窗口最大值、347.前 K 个高频元素
今天的题目思维难度有点大,虽然只有两道题,但是还是花了很多时间。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-01-22 21:28:20 · 1025 阅读 · 0 评论 -
代码随想录算法训练营第14天| 二叉树的深度优先遍历(递归遍历、迭代遍历、迭代的统一写法)
二叉树的深度优先遍历很重要,尤其是用递归和迭代实现的写法。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-01-23 23:19:46 · 822 阅读 · 1 评论 -
代码随想录算法训练营第15天| Leetcode 102.二叉树的层序遍历、226.翻转二叉树、101.对称二叉树
遍历只是个工具,具体的行为需要根据题意灵活转换。原创 2024-01-26 11:53:50 · 1078 阅读 · 1 评论 -
代码随想录算法训练营第16天| Leetcode 104.二叉树的最大深度、559.n叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数
对于(1),可以直接用 2^树深度 - 1 来计算,注意这里根节点深度为1。对于(2),分别递归左孩子,和右孩子,递归到某一深度一定会有左孩子或者右孩子为满二叉树,然后依然可以按照情况1来计算。接下来思考如何判断是否是满二叉树?原创 2024-01-27 17:13:54 · 792 阅读 · 0 评论 -
代码随想录算法训练营第17天| Leetcode 110.平衡二叉树、257.二叉树的所有路径、404.左叶子之和
这里我们发现,迭代法的代码用到了两个栈,而且细节很多,还包括了回溯的思想,稍有不慎就可能漏掉某些细节,然后debug很长时间。所以递归还是很香的hhh。原创 2024-01-27 22:14:29 · 456 阅读 · 0 评论 -
代码随想录算法训练营第18天| Leetcode 513.找树左下角的值、112. 路径总和、113. 路径总和ii、106.从中序与后序遍历序列构造二叉树、105.从前序与中序遍历序列构造二叉树
这道题既可以用递归法也可以用迭代法。递归寻找最大深度或者一层一层迭代寻找最大深度。原创 2024-01-29 22:03:35 · 949 阅读 · 0 评论 -
代码随想录算法训练营第20天| Leetcode 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
今天的题比较基础,完成的比较轻松,可以用来复习二叉树的基础内容。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-01-30 23:24:55 · 878 阅读 · 0 评论 -
代码随想录算法训练营第21天| Leetcode 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先
今天最后一道题思维难度有点大,理解了很长时间才把思路和代码结合起来。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-01-31 19:04:01 · 966 阅读 · 0 评论 -
代码随想录算法训练营第22天| Leetcode 235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点(对于优化代码附带详解)
今天最后一道题的优化思路不太容易理解,想了很长时间算是给出了一种比较合理的解释吧。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-02-01 15:54:47 · 853 阅读 · 0 评论 -
代码随想录算法训练营第23天| Leetcode 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
题目链接:Leetcode 669. 修剪二叉搜索树题目描述:给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。思路:这道题第一反应和450.删除二叉搜索树中的节点没什么区别,不过仔细分析之后发现,我们不确定被删除节点的子树是否需要删除,因此还需要利用二叉搜索树的性质递归寻找其子树不需要被删除的节点,然后返回才可以。代码如下:(递归法)因为二叉搜索树的有原创 2024-02-01 22:30:47 · 548 阅读 · 0 评论 -
代码随想录算法训练营第24天| Leetcode 77.组合(回溯+回溯优化)
举个例子,我们在玩迷宫游戏的时候,如何找到从起点到终点的一条路线呢?最简单的想法就是走一步看一步,如果遇到岔路口,就按顺序把每个路口都走一遍,遇到死胡同就退回来换一个路口,直到找到终点。举个例子,n = 4,k = 3, 目前已经选取的元素为0(path.size为0),n - (k - 0) + 1 即 4 - ( 3 - 0) + 1 = 2。第一反应是直接for循环,仔细读题后发现k是未知的,不能确定是多少层嵌套循环,因此可以。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-02-02 17:16:01 · 359 阅读 · 0 评论 -
代码随想录算法训练营第25天| Leetcode 216.组合总和III、17.电话号码的字母组合
今天的回溯也不算难,不过想一次写对也不太容易。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-02-03 19:48:59 · 428 阅读 · 0 评论 -
代码随想录算法训练营第27天| Leetcode 39. 组合总和、40.组合总和II、131.分割回文串
感觉回溯算法很好理解hhh,不过最后一道题利用动态规划优化这块还是不太好想。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-02-05 09:46:39 · 872 阅读 · 0 评论 -
代码随想录算法训练营第28天| Leetcode 93.复原IP地址、78.子集、90.子集II
回溯法思路简单,但是代码很难一次写对。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-02-06 12:37:55 · 470 阅读 · 0 评论 -
代码随想录算法训练营第29天| Leetcode 491.递增子序列、46.全排列、47.全排列 II
今天主要是辨析对于含有相同元素的排序问题,如何实现去重操作:(1)对于寻找。原创 2024-02-07 23:23:14 · 432 阅读 · 0 评论 -
代码随想录算法训练营第30天| Leetcode 332.重新安排行程、51. N皇后、37. 解数独
今天这三道题难度还是很大的,勉强理解代码。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-02-14 22:37:54 · 442 阅读 · 0 评论 -
代码随想录算法训练营第31天| Leetcode 455.分发饼干、376. 摆动序列、53. 最大子数组和
子序列可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。局部最优:当前“连续和”为负数的时候立刻放弃,从下一个元素重新计算“连续和”,因为负数加上下一个元素 “连续和”只会越来越小。,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。给你一个整数数组 nums ,返回 nums 中作为 摆动序列 的 最长子序列的长度。这道题我第一反应是利用动态规划解决,因为根据摆动序列定义可以知道,摆动序列的数字是。为了满足更多的小孩,就不要造成饼干尺寸的浪费。原创 2024-02-17 01:22:34 · 968 阅读 · 0 评论 -
代码随想录算法训练营第32天| 122.买卖股票的最佳时机 II、55. 跳跃游戏、45.跳跃游戏 II
贪心的题目难就难在该如何寻找某种决策,能使每次根据局部最优的决策,并且最终达到整体最优的结果。任重而道远啊!最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-02-17 20:30:57 · 872 阅读 · 0 评论 -
代码随想录算法训练营第33天| Leetcode1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果
贪心的题目最重要的就是该如何想到贪心策略,因此需要多多练习题目。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-02-18 12:59:43 · 922 阅读 · 0 评论 -
代码随想录算法训练营第34天| Leetcode 860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球
很多贪心类题目第一次做几乎不太可能想到,因此需要。原创 2024-02-18 17:22:40 · 760 阅读 · 0 评论 -
代码随想录算法训练营第36天| Leetcode 435. 无重叠区间、763.划分字母区间、56. 合并区间
今天的第二道题。原创 2024-02-21 12:02:10 · 951 阅读 · 0 评论 -
代码随想录算法训练营第37天| Leetcode 738.单调递增的数字、968.监控二叉树
贪心类题目多积累吧,遇到新题目没思路确实不好搞。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-02-22 22:32:35 · 952 阅读 · 0 评论 -
代码随想录算法训练营第38天| Leetcode 509. 斐波那契数、Leetcode 70. 爬楼梯、Leetcode 746. 使用最小花费爬楼梯
刚开始的三道动态规划题目很简单,主要是练习动态规划的解题关键:如何定义。原创 2024-02-23 11:59:19 · 929 阅读 · 0 评论 -
代码随想录算法训练营第39天| Leetcode 62.不同路径、Leetcode 63. 不同路径 II
这两道题还是比较简单的,递推公式很好想到。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-02-23 14:05:39 · 1178 阅读 · 0 评论 -
代码随想录算法训练营第40天| Leetcode 343. 整数拆分、Leetcode 96.不同的二叉搜索树
算法的尽头也是数学啊!最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-02-25 20:12:25 · 909 阅读 · 0 评论 -
代码随想录算法训练营第41天|卡码网 46. 携带研究材料、Leetcode 416. 分割等和子集
01背包问题算是背包问题中的基础问题,理解其原理之后会对后续更复杂的背包问题更有帮助。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-02-25 23:40:27 · 739 阅读 · 0 评论 -
代码随想录算法训练营第43天| Leetcode 1049.最后一块石头的重量II、Leetcode 494.目标和、Leetcode 474.一和零
Leetcode 1049.最后一块石头的重量II有一堆石头,用整数数组stones表示。其中stones[i]表示第i块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为x和y,且x <= y。如果x == y,那么两块石头都会被完全粉碎;如果x!= y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为y-x。最后,最多只会剩下一块石头。返回此石头最小的可能重量。如果没有石头剩下,就返回0。本题可以利用01背包来解决。为何会想到利用01背包呢?原创 2024-02-26 17:54:12 · 914 阅读 · 0 评论 -
代码随想录算法训练营第44天| Leetcode 518.零钱兑换II、Leetcode 377. 组合总和 Ⅳ
如果求组合数就是外层for循环遍历物品,内层for遍历背包。如果求排列数就是外层for遍历背包,内层for循环遍历物品。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-02-27 13:12:36 · 933 阅读 · 0 评论 -
代码随想录算法训练营第45天| 卡码网 57. 爬楼梯、Leetcode 322. 零钱兑换、Leetcode 279.完全平方数
理解了完全背包问题之后,这三道题还是很简单的,唯一的难点在于将题目抽象成完全背包问题。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!原创 2024-02-28 23:43:51 · 778 阅读 · 0 评论