Leetcode
文章平均质量分 60
weixin_45075561
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营Day30——332重新安排行程、51N皇后、37解数独
【代码】代码随想录算法训练营Day30——332重新安排行程、51N皇后、37解数独。原创 2023-08-08 21:10:55 · 157 阅读 · 0 评论 -
代码随想录算法训练营Day29——93复原IP地址、46全排列、47全排列II
【代码】代码随想录算法训练营Day29——93复原IP地址、46全排列、47全排列II。原创 2023-08-08 21:05:14 · 131 阅读 · 0 评论 -
代码随想录算法训练营Day28——93复原IP地址、78子集、90子集II
【代码】代码随想录算法训练营Day28——93复原IP地址、78子集、90子集II。原创 2023-08-08 21:01:12 · 127 阅读 · 0 评论 -
代码随想录算法训练营Day27——39组合总和、40组合总和II、131分割回文串
【代码】代码随想录算法训练营Day27——39组合总和、40组合总和II、合。原创 2023-08-08 20:57:02 · 114 阅读 · 0 评论 -
代码随想录算法训练营Day25——216组合总和III、17电话号码的字母组合
216组合总和III回溯法总结时间复杂度:O(n∗2n)O(n * 2^n)O(n∗2n)空间复杂度:O(n)O(n)O(n)17电话号码的字母组合回溯法总结时间复杂度:O(3m∗4n)O(3^m * 4^n)O(3m∗4n)空间复杂度:O(3m∗4n)O(3^m * 4^n)O(3m∗4n)原创 2023-08-03 22:04:03 · 64 阅读 · 0 评论 -
代码随想录算法训练营Day24——77组合
1.回溯是递归的副产品,只要有递归就会有回溯2.回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法高效一些,可以加一些剪枝的操作,但也改不了回溯法就是穷举的本质3.回溯法解决的问题都可以抽象为树形结构,因为回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度,都构成的树的深度24-1.77组合题目77组合回溯法总结时间复杂度:O(n∗2n)O(n * 2^n)O(n∗2n)空间复杂度:O(n)O(n)O(n)原创 2023-08-03 21:59:28 · 92 阅读 · 0 评论 -
代码随想录算法训练营Day23——669修剪二叉搜索树、108将有序数组转换为二叉搜索树、538把二叉搜索树转换为累加树
【代码】代码随想录算法训练营Day23——669修剪二叉搜索树、108将有序数组转换为二叉搜索树、538把二叉搜索树转换为累加树。原创 2023-08-03 17:22:21 · 39 阅读 · 0 评论 -
代码随想录算法训练营Day22——235二叉搜索树的最近公共祖先、701二叉搜索树中的插入操作、450删除二叉搜索树中的节点
【代码】代码随想录算法训练营Day22——235二叉搜索树的最近公共祖先、701二叉搜索树中的插入操作、450删除二叉搜索树中的节点。原创 2023-08-03 17:18:30 · 42 阅读 · 0 评论 -
代码随想录算法训练营Day21——530二叉搜索树的最小绝对差、501二叉搜索树中的众数、236二叉树的最近公共祖先
【代码】代码随想录算法训练营Day21——530二叉搜索树的最小绝对差、501二叉搜索树中的众数、236二叉树的最近公共祖先。原创 2023-08-03 17:15:08 · 40 阅读 · 0 评论 -
代码随想录算法训练营Day20——654最大二叉树、617合并二叉树、700二叉搜索树的搜索、98验证二叉搜索树
递归法,不断找最大值做根节点。原创 2023-08-01 21:45:44 · 48 阅读 · 0 评论 -
代码随想录算法训练营Day18—— 513找树左下角的值、112路径总和、106从中序与后序遍历序列构造二叉树
【代码】代码随想录算法训练营Day18—— 513找树左下角的值、112路径总和、106从中序与后序遍历序列构造二叉树。原创 2023-07-20 11:07:27 · 45 阅读 · 1 评论 -
代码随想录算法训练营Day17—— 110平衡二叉树、257二叉树的所有路径、404左叶子之和
【代码】代码随想录算法训练营Day17—— 110平衡二叉树、257二叉树的所有路径、404左叶子之和。原创 2023-07-19 16:26:44 · 39 阅读 · 0 评论 -
代码随想录算法训练营Day16—— 104二叉树的最大深度、559N叉树的最大深度、111二叉树的最小深度、222完全二叉树的节点个数
【代码】代码随想录算法训练营Day16—— 104二叉树的最大深度、559N叉树的最大深度、111二叉树的最小深度、222完全二叉树的节点个数。原创 2023-07-19 15:22:35 · 40 阅读 · 0 评论 -
代码随想录算法训练营Day15—— 102二叉树的层序遍历、226翻转二叉树、101对称二叉树
找到合适的遍历方式(先序、后序、层序),遍历过程中翻转每一个节点的左右孩子即可以达到整体翻转的效果。比较根节点的左右子树是否相互翻转。原创 2023-07-19 10:10:01 · 39 阅读 · 0 评论 -
代码随想录算法训练营Day14—— 144二叉树的前序遍历、94二叉树的中序遍历、145二叉树的后序遍历
确定递归函数的参数和返回值确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么,进而确定递归函数的返回类型确定终止条件写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出确定单层递归的逻辑确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程。原创 2023-07-11 20:36:17 · 70 阅读 · 1 评论 -
代码随想录算法训练营Day13—— 239滑动窗口最大值、347前K个高频元素
239题滑动窗口最大值考虑队列总结时间复杂度:O(n)O(n)O(n)空间复杂度:O(k)O(k)O(k)347题前K个高频元素三步走:统计元素出现频率、对频率排序、找出前K个高频元素优先级队列总结时间复杂度:O(n∗logk)O(n*log k)O(n∗logk)空间复杂度:O(n)O(n)O(n)原创 2023-07-10 21:55:06 · 161 阅读 · 1 评论 -
代码随想录算法训练营Day11—— 20有效的括号、1047删除字符串中的所有相邻重复项、150逆波兰表达式求值
20题有效的括号用到栈的结构第一种情况:字符串遍历完毕但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false第二种情况:遍历字符串匹配的过程中,发现栈里没有要匹配的字符,所以return false第三种情况:遍历字符串匹配的过程中,栈已经为空,没有匹配的字符了,说明右括号没有找到对应的左括号return false全部匹配:字符串遍历完后栈为空总结时间复杂度:O(n)O(n)O(n)空间复杂度:O(n)O(n)O(n)1047题删除字符串中的所有相邻重复项栈存放元素,原创 2023-07-08 20:54:36 · 53 阅读 · 0 评论 -
代码随想录算法训练营Day10—— 232用栈实现队列、225用队列实现栈
将常用功能抽象为一个函数,避免直接复制粘贴修改代码时间复杂度: push和empty为O1O(1)O1, pop和peek为OnO(n)On空间复杂度:OnO(n)On时间复杂度: push为OnO(n)On,其他为O1O(1)O1空间复杂度:OnO(n)On。原创 2023-07-07 20:30:55 · 39 阅读 · 1 评论 -
代码随想录算法训练营Day9—— 28找出字符串中第一个匹配项的下标、459重复的子字符串
OnmO(n+m)OnmOmO(m)OmOnO(n)OnO1O(1)O1KMP算法有难度,继续攻坚!原创 2023-07-07 16:08:00 · 38 阅读 · 1 评论 -
代码随想录算法训练营Day8—— 344反转字符串、541反转字符串II、剑指Offer05替换空格、151翻转字符串里的单词、剑指 Offer 58 - II. 左旋转字符串
344题反转字符串双指针法,两两交换,左指针加加,右指针减减总结时间复杂度:O(n)O(n)O(n)空间复杂度:O(1)O(1)O(1)541题反转字符串II双指针法总结时间复杂度:O(n)O(n)O(n)空间复杂度:O(1)O(1)O(1)剑指Offer05题替换空格直接生成新的字符串,对空格进行平行替换总结时间复杂度 :O(n)O(n)O(n)空间复杂度 :O(1)O(1)O(1)151题翻转字符串里的单词移除多余空格->将整个字符串反转->将每个单词反转总结时间复杂度:O(n)O原创 2023-07-05 21:46:19 · 71 阅读 · 1 评论 -
代码随想录算法训练营Day7—— 454四数相加 II、383赎金信、15三数之和、18四数之和
454题四数相加 II使用map总结时间复杂度:O(n2)O(n^2)O(n2)空间复杂度:O(n2)O(n^2)O(n2)383题赎金信242题有效的字母异位词总结时间复杂度:O(n)O(n)O(n)空间复杂度:O(1)O(1)O(1)15题三数之和双指针法。一层for循环num[i]为确定值,然后循环内有left和right下标作为双指针,找到nums[i] + nums[left] + nums[right] == 0总结时间复杂度 :O(n2)O(n^2)O(n2)空间复杂度 :O原创 2023-07-04 23:05:44 · 45 阅读 · 0 评论 -
代码随想录算法训练营Day6—— 242有效的字母异位词、349两个数组的交集、202快乐数、1两数之和
哈希表是根据关键码的值而直接进行访问的数据结构哈希表是常用于快速判断一个元素是否出现集合里哈希结构242题有效的字母异位词数组也是哈希表总结时间复杂度:O(n)O(n)O(n)空间复杂度:O(1)O(1)O(1)349题两个数组的交集考虑哈希数据结构unordered_set总结时间复杂度:O(mn)O(mn)O(mn)空间复杂度:O(n)O(n)O(n)202题快乐数将n的每一位拆出来,然后计算平方操作,直到最终结果为1或无限循环不为1总结时间复杂度 :O(logn)O(log n)O(原创 2023-07-03 20:38:32 · 86 阅读 · 1 评论 -
代码随想录算法训练营Day4—— 24两两交换链表中的节点、19删除链表的倒数第N个节点、160相交链表、142环形链表II
OnO(n)OnO1O(1)O1OnO(n)OnO1O(1)O1OnmO(n+m)OnmO1O(1)O1OnO(n)OnO1O(1)O1•虚拟头节点YYDS• 链表的基本操作• 反转链表• 相交链表• 环形链表。原创 2023-07-02 18:36:18 · 193 阅读 · 1 评论 -
代码随想录算法训练营Day3——203移除链表元素、707设计链表、206反转链表
时间复杂度为OnO(n)On空间复杂度为O1O(1)O1时间复杂度: 涉及 index 的相关操作为OindexO(index)Oindex, 其余为O1O(1)O1空间复杂度:OnO(n)On时间复杂度为OnO(n)On空间复杂度为O1O(1)O1虚拟头结点YYDS!原创 2023-06-30 20:34:38 · 33 阅读 · 0 评论 -
代码随想录算法训练营Day2——977有序数组的平方、209长度最小的子数组、59螺旋矩阵II
可以用双指针法进行优化。具体思想为数组平方的最大值要么在最左端要么在最右端,定义两个指针,一个指向起始位置,一个指向终止位置,定义新数组,让k指向新数组终止位置,逐个向前插入新元素int i = 0;//指示左边 int j = nums . length - 1;//指示右边 for(int k = sortednums . length - 1;i <= j;k --) {原创 2023-06-29 19:42:27 · 282 阅读 · 1 评论 -
代码随想录算法训练营Day1——704二分查找、27移除元素
数组下标low=0,上标high=nums.length注意左闭右闭和左闭右开两种写法On2O(n^2)On2O1O(1)O1OnO(n)OnO1O(1)O1。原创 2023-06-28 18:19:49 · 367 阅读 · 1 评论