- 博客(39)
- 收藏
- 关注
原创 代码随想录训练营Day41:● 343. 整数拆分 ● 96.不同的二叉搜索树
【代码】代码随想录训练营Day40:● 343. 整数拆分 ● 96.不同的二叉搜索树。
2024-04-01 21:24:58
383
原创 代码随想录训练营Day39:● 62.不同路径 ● 63. 不同路径 II
【代码】代码随想录训练营Day39:● 62.不同路径 ● 63. 不同路径 II。
2024-03-30 20:43:36
273
原创 代码随想录训练营Day38:● 理论基础 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯
确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组。
2024-03-30 17:52:50
398
原创 代码随想录训练营Day36:● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间
最开始先包含 a ,根据题目要求,需要把所有的 a 都囊括进一个区间里边,所以找到最远的 a 为下标 8 的位置,但是在囊括 a 的同时,需要把 b c 囊括进来,所以需要再次找 b c 的最远位置,统计过 a b c 的最远位置之后进行比较,这一个区间的最远位置就是 8 ,因此 8 之前就为一个分割区间。对于上边的字符串 s = “ababcbacadefegde”思路在代码注释中均有描述。
2024-03-29 21:27:18
903
原创 代码随想录训练营Day35:● 860.柠檬水找零 ● 406.根据身高重建队列 ● 452. 用最少数量的箭引爆气球
接下来将两只重叠气球中的右边界进行比较,选取小的一个,作为下一次和第三个气球左边界进行比较,如果小于第三个,则将弓箭术加加,否则继续选取二者中较小的右边界。[7,0] [6,1] [7,1] ,以此类推,最终得到最终的结果,这样的原理是因为先对身高进行了排序,所以即使后边的往前插入,也不会影响其他的位置。首先判断两个气球是否重叠,就是将当前气球的左边界和上一个气球的右边界进行比较,如果左边界<=右边界,则可以用一只弓箭射穿,否则需要两只弓箭;如何判断多个气球重叠。
2024-03-29 19:33:11
476
原创 代码随想录训练营Day33:● 1005.K次取反后最大化的数组和 ● 134. 加油站 ● 135. 分发糖果
【代码】代码随想录训练营Day33:● 1005.K次取反后最大化的数组和 ● 134. 加油站 ● 135. 分发糖果。
2024-03-26 22:16:50
248
原创 代码随想录训练营Day32:● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
统计后一天减去前一天,差值为正数的,再把他们加起来,就是获利最大的了。太难想了/(ㄒoㄒ)/~~没太听明白,得再看看。
2024-03-25 23:03:31
402
原创 代码随想录训练营Day31:● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和
【代码】代码随想录训练营Day31:● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和。
2024-03-25 20:49:58
333
原创 代码随想录训练营Day30:● 332.重新安排行程 ● 51. N皇后 ● 37. 解数独 ● 总结
https://leetcode.cn/problems/reconstruct-itinerary/description/看不太懂,先把题解放这吧51. N皇后题目链接https://leetcode.cn/problems/n-queens/description/37. 解数独题目链接https://leetcode.cn/problems/sudoku-solver/description/看懂了总结https://programmercarl.com/%E5%9B%9E%E6
2024-03-25 09:02:17
209
原创 代码随想录训练营Day29:* 491.递增子序列 * 46.全排列 * 47.全排列 II
【代码】代码随想录训练营Day29:* 491.递增子序列 * 46.全排列 * 47.全排列 II。
2024-03-20 21:37:48
351
原创 代码随想录训练营Day25:● 39. 组合总和 ● 40.组合总和II ● 131.分割回文串
如果以上三个条件同时满足,说明当前元素 candidates[i] 与前一个元素相等,并且前一个元素没有被使用过(即没有被选择过),这种情况下可以认为当前元素是重复的,并且已经被处理过了,所以使用 continue 跳过当前循环,继续处理下一个元素。nums[i - 1]: 这个条件检查前一个元素 candidates[i - 1] 是否已经被使用过(如果对应的 nums[i - 1] 是 true,则表示已经被使用过了,因此!因为如果 i 是0,candidates[i - 1] 将会越界。
2024-03-18 17:15:00
374
原创 代码随想录训练营Day25:● 216.组合总和III ● 17.电话号码的字母组合
【代码】代码随想录训练营Day25:● 216.组合总和III ● 17.电话号码的字母组合。
2024-03-16 22:00:40
613
原创 代码随想录训练营Day24:● 理论基础 ● 77. 组合
回溯法,一般可以解决如下几种问题:组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集排列问题:N个数按一定规则全排列,有几种排列方式棋盘问题:N皇后,解数独等等。
2024-03-16 17:53:21
535
原创 代码随想录训练营Day23:● 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树 ● 总结篇
https://leetcode.cn/problems/trim-a-binary-search-tree/description/108.将有序数组转换为二叉搜索树题目链接https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/538.把二叉搜索树转换为累加树题目链接https://leetcode.cn/problems/convert-bst-to-greater-tree/description/
2024-03-14 22:02:13
559
原创 代码随想录训练营Day22:● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点
相较于前一天的题不同,昨天的题是二叉树,这次重点强调了是二叉搜索树。
2024-03-13 21:59:13
435
原创 代码随想录训练营Day21:● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先
接下来去判断count和maxCount,刚开始会把一些无关的都添加到列表中,但是在比较的过程中会不断的更新maxCount,所以需要清空列表去添加最大的,最后在主函数中调用这个函数,再用数组去存储。=当前节点值(说明已经开始计算下一个节点的出现次数了)的时候,都将count置为1。将每个节点以及节点出现的次数存放到map集合中,遍历集合的值,找到最大的即出现次数最多的,再找到出现次数为最大值的所有键。先中序遍历得到二叉搜索树的有序数组,再遍历一遍数组,找到最小差值。
2024-03-12 21:12:42
374
原创 代码随想录训练营Day20:● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树
因为是二叉搜索树,所以符合一条规则,根节点左侧的值均小于根节点,根节点右侧的值均大于根节点。分成三种情况,根节点大于、小于、等于给定目标值。
2024-03-11 15:54:19
431
原创 代码随想录训练营Day18:● 513.找树左下角的值 ● 112. 路径总和 ● 113.路径总和ii ● 106.从中序与后序遍历序列构造二叉树 ●105.从前序与中序遍历序列构造二叉树
【代码】代码随想录训练营Day18:● 513.找树左下角的值 ● 112. 路径总和 ● 113.路径总和ii ● 106.从中序与后序遍历序列构造二叉树 ●105.从前序与中序遍历序列构造二叉树。
2024-03-10 22:36:15
437
1
原创 代码随想录训练营Day17:● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和
然后是思路,因为找一个叶子节点很好找,即他的左右孩子都为空即可,但是如何确定是左孩子就不整了,所以本题思路为判断一个节点他的左孩子不为空,同时他的左孩子必须左右为空(即是叶子节点)首先有几个误区说一下,1、左叶子节点,表示既是叶子节点同时也是左孩子。相对于递归而言,我还是更明白迭代方法,递归还得再理解理解。使用后序遍历,即左右中顺序。
2024-03-09 23:08:28
464
1
原创 代码随想录训练营Day16:● 104.二叉树的最大深度 559.n叉树的最大深度 ● 111.二叉树的最小深度 ● 222.完全二叉树的节点个数
今天的题在昨天的题上边的变种,还行,很快就完成了,耶耶耶耶耶!!!!!
2024-03-07 17:31:27
400
1
原创 代码随想录训练营Day15:● 层序遍历 10 ● 226.翻转二叉树 ● 101.对称二叉树 2
新定义一个树结构,根节点可能包含多个孩子,所以用一个列表去存储孩子节点。每遍历一层,深度就加一,所以最大深度就是二叉树的层数。定义队列去实现,每步在代码注释中均给出了。在上一题的基础上把结果列表反转即可。使用前序或者后序遍历,递归方法(
2024-03-06 22:24:36
834
1
原创 代码随想录训练营Day14:● 理论基础 ● 递归遍历 ● 迭代遍历 ● 统一迭代
先遍历中中右左这个顺序,同样是先压入父节点,再压入左孩子,再压入右孩子,这样能够保证弹出的顺序为中右左,最后再将列表反转一下即可得到左右中,也就是后序遍历。定义一个指针为根节点,然后一直遍历左孩子,当左孩子为空的时候,就将栈中的元素弹出,再把当前指针移动到弹出元素的右孩子。先将右孩子放进去,再放左孩子,这样弹出栈的时候就可以安装中左右的顺序。给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历。给你二叉树的根节点 root ,返回它节点值的 前序 遍历。可以直接在前序遍历的基础上作修改。
2024-03-05 23:04:39
407
原创 代码随想录训练营Day13:239. 滑动窗口最大值 ● 347.前 K 个高频元素 ● 总结
补排序算法,大小根堆、优先队列知识点,以及Java中对集合 map 的所有操作。
2024-03-04 17:37:12
638
原创 代码随想录Day11:● 20. 有效的括号 ● 1047. 删除字符串中的所有相邻重复项 ● 150. 逆波兰表达式求值
Java中 对于队列的操作需要注意。
2024-03-02 20:35:12
424
原创 代码随想录Day10:● 理论基础 ● 232.用栈实现队列 ● 225. 用队列实现栈
在 Java 中,Queue 是一个接口,不能直接实例化。您需要使用 Queue 接口的实现类来创建队列的实例。正确的做法是使用 LinkedList(链表)类来实例化一个队列,因为 LinkedList 实现了 Queue 接口。在 Java 中,Stack 类表示一个后进先出(LIFO)的栈数据结构。您可以使用 Stack 类来创建一个整数类型的栈实例。这句代码创建了一个能够存储整数的栈实例。您可以使用 stackIn 对象来执行栈的相关操作,例如压栈、出栈、查看栈顶元素等。
2024-03-01 15:28:17
468
1
原创 Day09:●28. 实现 strStr() ●459.重复的子字符串 ●字符串总结 ●双指针回顾
https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/459.重复的子字符串题目链接https://leetcode.cn/problems/repeated-substring-pattern/字符串总结https://programmercarl.com/%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%80%BB%E7%BB%93.htmlhttps://programmer
2024-02-29 16:46:17
366
原创 Day08:● 344.反转字符串 ● 541. 反转字符串II ● 卡码网:54.替换数字 ● 151.翻转字符串里的单词 ● 卡码网:55.右旋转字符串
第二道题杀我,花了好长时间想出了复杂的写法字符串内部不可以进行修改,所以要将字符串进行转换之后在进行操作;StringBuilder 也不可以进行修改和赋值操作,可以通过函数进行start++;end--;
2024-02-28 21:22:10
1126
1
原创 代码随想录训练营Day07:● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和
今天写了四道题,花了半天的时间,每天都有收获。
2024-02-27 17:50:16
861
原创 Day6代码随想录训练营● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数 ● 1. 两数之和
使用两层for循环遍历两个数组是否有相等的数字,有的话就添加到新数组当中,遍历完成之后需要对新数组进行去重,但是在对新数组初始化的时候,因为新数组全部被初始化为0,所以如果没有添加第一个元素,第一个元素就默认为0,而这不是想要的结果,举个例子,设置一快一慢指针,慢的指针每次走一步,快指针每次走两步,不管是不是欢乐数,快慢指针都会相遇,如果是欢乐数,最后必定是快指针先等于1,慢指针最终也会等于1,如果不是欢乐数,就会形成一个环,快慢指针也会相遇,即最终值相等,但两者都不会等于1。学习hash表,收获满满。
2024-02-26 21:25:12
820
1
原创 Day4代码随想录训练营|24. 两两交换链表中的节点|19.删除链表的倒数第N个节点|02.07. 链表相交|142.环形链表II
作者的思路仍然是设置一个虚拟头节点,然后设置cursor直接指向虚拟头节点,因为要交换的是虚拟头节点的后边两个节点,所以cursor的位置要始终保持在两个交换节点的前边,拿1,2,3,4,5举例,cursor的位置就是0(虚拟头节点的位置),2,4,接下来需要考虑的是循环的终止条件,按例子来说的话,是链表的长度是奇数,cursor的终止位置是倒数第二个节点,也就是。l即终止循环,如果链表长度是偶数,即1,2,3,4,那cursor的位置分别是0,2,4,这时候4的下一个已经为空,所以是。
2024-02-24 18:33:10
927
原创 代码随想录第三天 || 链表理论基础 || 203.移除链表元素 || 707.设计链表 || 206.反转链表
双指针:设置两个指针 pre 和 cur,pre 置为空,cur 赋值为头节点,第一次循环,将cur指向pre,然后两个指针同时向后移动,以此类推,直到cur指向null,循环停止,这时候最后一个节点是pre,即反转链表的头节点,接下来根据思路写代码,需要注意的点:需要找一个临时变量存放cur的下一个节点,因为反转的时候,cur就断了和后边的联系,所以需要在反转之前存储。一:因为存在头节点是目标值的情况,如果删掉,就没办法将头节点的下一个作为头节点,所以分为了两种情况去处理,即目标值是否为头节点;
2024-02-23 17:31:16
457
原创 代码随想录训练营Day02:● 977.有序数组的平方 ● 209.长度最小的子数组● 59.螺旋矩阵II
题目建议: 本题关键在于理解双指针思想题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/文章讲解:https://programmercarl.com/0977.%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E5%B9%B3%E6%96%B9.html视频讲解: https://www.bilibili.com/video/BV1QB4y1D7ep。
2024-02-22 17:36:01
1122
1
原创 代码随想录训练营Day01:● 704. 二分查找● 27. 移除元素
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
2024-02-21 13:49:09
2099
2
原创 jupyter下markdown模式使用小指南
讲juputer下的code模式切换为markdown可以进入笔记模式,以下是记录我学习到的一些小技巧:1、标题 输入一个#,并按一下空格(一定要记得按空格,不然不会生成一级标题),可以进行一级标题的书写,输入两个#再按下空格,则是二级标题,以此类推,输入几个#,就是几级标题2、输入*,并按下空格,会生成句点项目符号,可以分成几点的形式3、>和*,按下空格,会在笔记前生成竖线...
2022-08-30 21:43:11
1481
1
原创 ERROR: Could not build wheels for pycocotools which use PEP 517 and cannot be installed
在pycharm中使用终端安装 pip install -r ruquirements.txt时,可能会出现pycocotools不能正常安装的现象,遇到这种问题我的第一想法就是去csdn上找解决办法,结果试了好多还是不行,最后在pycharm给的建议中,安装了visual studio,虽然文件很大,很占空间,但是问题得到了解决...
2022-03-26 21:17:27
4471
5
原创 如何查找各个手机放序列号
实习经验—如何查找各个型号手机的序列号?1、 小米手机:设置—>我的设备—>往下翻找到全部参数—>状态信息—>型号和硬件里点开即可找到序列号2、 华为手机:设置—>关于手机—>状态信息—>序列号3、 OPPO手机:设置—>关于手机—>状态信息—>序列号4、 VIVO手机:设置—>更多设置—>关于手机—>IMEI1和IMEI2即为序列号5、 苹果手机:设置—>通用—>关于本机—>序列号...
2022-03-15 15:10:34
16224
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅