自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 代码随想录算法训练营第二十九天|● 491.递增子序列● 46.全排列 ● 47.全排列 II(JS写法)

视频讲解:https://www.bilibili.com/video/BV1EG4y1h78v在90.子集II (opens new window)中我们是通过排序,再加一个标记数组来达到去重的目的。而本题求自增子序列,是不能对原数组进行排序的,排完序的数组都是自增子序列了。所以不能使用之前的去重逻辑!本题给出的示例,还是一个有序数组 [4, 6, 7, 7],这更容易误导大家按照排序的思路去做了。

2024-03-26 14:55:47 374

原创 代码随想录算法训练营第二十八天|● 93.复原IP地址 ● 78.子集 ● 90.子集II (JS写法)

题目链接/文章讲解:https://programmercarl.com/0093.%E5%A4%8D%E5%8E%9FIP%E5%9C%B0%E5%9D%80.html视频讲解:https://www.bilibili.com/video/BV1XP4y1U73i/

2024-03-24 11:49:49 816

原创 代码随想录算法训练营第二十七天|●39. 组合总和 ● 40.组合总和II ● 131.分割回文串(JS写法)

题目链接/文章讲解:https://programmercarl.com/0039.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8C.html视频讲解:https://www.bilibili.com/video/BV1KT4y1M7HJ一开始自己写的大概和答案差不多,但是弄不明白回溯要传递的参数,但是自己一开始想到了终止条件,如果>7了就不对了,=7才对,

2024-03-20 22:47:55 618

原创 代码随想录算法训练营第二十五天|● 216.组合总和III ● 17.电话号码的字母组合(JS写法)

注意这个index可不是 77.组合 (opens new window)和216.组合总和III (opens new window)中的startIndex了。这个index是记录遍历第几个数字了,就是用来遍历digits的(题目中给出数字字符串),同时index也表示树的深度。

2024-03-18 13:13:52 527

原创 代码随想录算法训练营第二十四天|● 理论基础 ● 77. 组合(JS写法)

回溯法解决的问题都可以抽象为树形结构,因为回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度,都构成的树的深度。递归就要有终止条件,所以必然是一棵高度有限的树(N叉树)。

2024-03-17 17:28:10 825 1

原创 代码随想录算法训练营第二十二天|235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点 (JS写法)

题目链接/文章讲解:https://programmercarl.com/0235.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E8%BF%91%E5%85%AC%E5%85%B1%E7%A5%96%E5%85%88.html视频讲解:https://www.bilibili.com/video/BV1Zt4y1F7ww。

2024-03-16 22:06:45 486 1

原创 代码随想录算法训练营第二十一天|530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先 (JS写法)

题目链接/文章讲解:https://programmercarl.com/0530.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E5%B0%8F%E7%BB%9D%E5%AF%B9%E5%B7%AE.html视频讲解:https://www.bilibili.com/video/BV1DD4y11779。

2024-03-16 20:46:47 1710 1

原创 代码随想录算法训练营第二十天|● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树 (JS写法)

这个方法有点没懂/**0 : val)* }*//***/if(pre!pre = root;

2024-03-13 20:32:56 722

原创 代码随想录算法训练营第十八天|● 513.找树左下角的值 ● 112. 路径总和 113.路径总和ii ● 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树(JS写法)

题目链接/文章讲解/视频讲解:https://programmercarl.com/0513.%E6%89%BE%E6%A0%91%E5%B7%A6%E4%B8%8B%E8%A7%92%E7%9A%84%E5%80%BC.html方法一:BFS直接想到的就是这种方法,返回最后一层的第一个元素[ [1],[2,3],[4,5,6],[7] ],一开始以为这样不能通过,因为下图这种情况,但是居然通过了,那就是这种情况也是最底层最左侧的。

2024-03-12 21:51:02 197 1

原创 代码随想录算法训练营第十七天| ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和 (JS写法)

题目链接/文章讲解/视频讲解:https://programmercarl.com/0110.%E5%B9%B3%E8%A1%A1%E4%BA%8C%E5%8F%89%E6%A0%91.html注意:深度和高度不同注意:1.理解这种最终return的写法2.循环终止条件返回0或者1都可以,只要不是-1就行,因为这里的。

2024-03-11 17:32:30 77

原创 代码随想录算法训练营第十六天| 104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数(JS写法)

题目链接/文章讲解/视频讲解: https://programmercarl.com/0104.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E6%9C%80%E5%A4%A7%E6%B7%B1%E5%BA%A6.html思路:本题和之前的n叉树的层次遍历的基础上扩展,由于最大深度其实就是层次遍历输出的二维数组里一维数组的个数。如[[1],[3,2,4],[5,6]],即最大深度应为arr.length = 3。

2024-03-10 16:31:25 303 1

原创 代码随想录算法训练营第十五天| 层序遍历 10 ● 226.翻转二叉树 ● 101.对称二叉树 2 (JS写法)

题目链接/文章讲解/视频讲解:https://programmercarl.com/0102.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E5%B1%82%E5%BA%8F%E9%81%8D%E5%8E%86.html注意:很多都是自己基于第一道题的代码写的,可能不是那么优雅。

2024-03-06 19:28:56 289 1

原创 代码随想录算法训练营第十四天|● 理论基础 ● 递归遍历 ● 迭代遍历 ● 统一迭代(JS写法)

题目链接/文章讲解/视频讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E9%80%92%E5%BD%92%E9%81%8D%E5%8E%86.html。

2024-03-05 22:58:56 183

原创 代码随想录算法训练营第十三天|239. 滑动窗口最大值 347.前 K 个高频元素(JS写法)

题目链接/文章讲解/视频讲解:https://programmercarl.com/0239.%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3%E6%9C%80%E5%A4%A7%E5%80%BC.html:自己写的,但是执行很长的测试用例会超时,一开始我写的是while循环,有点没搞懂,后来在何包蛋的帮助下改成了for循环就对了。时间复杂度O(n*k):单调队列:单调递减的双端队列。

2024-03-05 10:32:18 407

原创 代码随想录算法训练营第十一天|20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值(JS写法)

题目链接/文章讲解/视频讲解:https://programmercarl.com/0020.%E6%9C%89%E6%95%88%E7%9A%84%E6%8B%AC%E5%8F%B7.html解释为什么用栈(来自最爱的笨猪爆破组):不能忘了扫描过的左括号,它们等着被匹配,用一个容器暂存——为什么是栈?像“对对碰”,匹配了就拿掉,如果最后清空了栈,则有效。如果栈中还剩左括号未匹配,则无效。:将左括号放入栈自己写的猪猪版本的,更规范一些(我的方法没有在else里加上栈空无法匹配这一项)

2024-03-02 17:32:20 487

原创 代码随想录算法训练营第十天|232.用栈实现队列 225. 用队列实现栈(JS写法)

题目链接/文章讲解/视频讲解:https://programmercarl.com/0232.%E7%94%A8%E6%A0%88%E5%AE%9E%E7%8E%B0%E9%98%9F%E5%88%97.html:使用两个数组的栈方法(push, pop) 实现队列。

2024-03-01 13:45:11 918

原创 代码随想录算法训练营第九天|字符串总结、双指针总结

在344.反转字符串 (opens new window),我们使用双指针法实现了反转字符串的操作,双指针法在数组,链表和字符串中很常用。接着在字符串:替换空格 (opens new window),同样还是使用双指针法在时间复杂度O(n)的情况下完成替换空格。其实很多数组填充类的问题,都可以先预先给数组扩容带填充后的大小,然后在从后向前进行操作。那么针对数组删除操作的问题,其实在27. 移除元素 (opens new window)中就已经提到了使用双指针法进行移除操作。同样的道理在151.翻转字符串里的

2024-02-29 22:47:16 283

原创 代码随想录算法训练营第八天|344.反转字符串 541. 反转字符串II 卡码网:54.替换数字 151.翻转字符串里的单词 卡码网:55.右旋转字符串(JS写法)

题目链接/文章讲解/视频讲解:https://programmercarl.com/0344.%E5%8F%8D%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2.html方法一:双指针注意:本题一开始声明了s如下,即,因此可以直接对其进行修改,如果声明s是字符串,即string,则。

2024-02-28 17:59:23 1525 1

原创 代码随想录算法训练营第七天|454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和 (JS写法)

题目链接/文章讲解/视频讲解:https://programmercarl.com/0454.%E5%9B%9B%E6%95%B0%E7%9B%B8%E5%8A%A0II.html时间复杂度: O(n^2)空间复杂度: O(n^2)

2024-02-27 16:48:38 224 1

原创 代码随想录算法训练营第六天|242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和 (JS写法)

题目链接/文章讲解/视频讲解: https://programmercarl.com/0242.%E6%9C%89%E6%95%88%E7%9A%84%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D.html:自己写的,采用map代码随想录的map写法,思路一样,相较于我写的更加简洁:数组,利用a的ASCII码来定位本题由于限制了都为小写字母,因此可以用数组的索引0-25来表示26个小写字母。

2024-02-26 16:17:50 1328 1

原创 代码随想录算法训练营第四天|24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II (JS写法)

题目链接/文章讲解/视频讲解: https://programmercarl.com/0024.%E4%B8%A4%E4%B8%A4%E4%BA%A4%E6%8D%A2%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E8%8A%82%E7%82%B9.html注意:1.设置虚拟头节点2.(两个条件顺序不可变,一旦顺序改变,容易导致空指针异常)3.具体交换节点的顺序4.

2024-02-25 23:37:29 370

原创 代码随想录算法训练营第三天| 203.移除链表元素、707.设计链表 、206.反转链表(JS写法)

题目链接/文章讲解/视频讲解::https://programmercarl.com/0203.%E7%A7%BB%E9%99%A4%E9%93%BE%E8%A1%A8%E5%85%83%E7%B4%A0.html方法一:设置虚拟头节点注意:1.2.返回的是dummyHead.next,而不是dummyHead3.方法二:不设置头节点,需要单独考虑头节点是要删除的节点这一情况。

2024-02-23 21:58:41 704

原创 代码随想录算法训练营第二天| 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注意:1、本身为非递减排序的数组,返回平方后的数组,并且也按照递增顺序。由于

2024-02-22 17:37:24 672 1

原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

题目链接:文章讲解:视频讲解:注意:1、如果是有序数组,且无重复元素,可以考虑使用二分查找,这是两个必要条件。2、有两种方法,左闭右闭和左闭右开,区别主要是while的条件是left<right还是left<=right(看left=right时有没有意义)和right=mid还是mid-1(一开始定的区间,在每一次更改左右指针后依然是这个闭合状态,因此如果一开始是右开,则right=mid,因为比较的时候不会与nums[mid]比较,而不是mid-1。

2024-02-21 11:13:58 550 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除