
寒假算法集训营
文章平均质量分 74
Hi Bomb!
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营第45天动态规划 背包基础 1 2、 416. 分割等和子集
恢复更新了,之前在返校,临开学也没有状态就休息了一段时间。原创 2023-02-19 19:12:07 · 772 阅读 · 0 评论 -
代码随想录算法训练营第43天DP动态规划62不同路径63 不同路径2
但如果(i, 0) 这条边有了障碍之后,障碍之后(包括障碍)都是走不到的位置了,所以障碍之后的dp[i][0]应该还是初始值0。递推公式和62.不同路径一样,dp[i][j] = dp[i - 1][j] + dp[i][j - 1]。但这里需要注意一点,因为有了障碍,(i, j)如果就是障碍的话应该就保持初始状态(初始状态为0)。是上一道题的升级版 有了障碍这一新的二维数组在这道题里是obastacleGrid。在递推公式 上与上一题不同需要考虑到 如果遇到障碍的情况但是大体是不变的。原创 2023-02-08 21:12:03 · 462 阅读 · 0 评论 -
代码随想录算法训练营第42天 回溯算法 java : 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
动态规划得前几道题都是入门题目 期待后序得题目变化忘记复杂规则肆意享受纯粹, 珍惜此刻千万别浪费。原创 2023-02-08 08:20:55 · 490 阅读 · 0 评论 -
代码随想录算法训练营第37天 回溯算法 java :134. 加油站 135. 分发糖果 1005.K次取反后最大化的数组和
今天第一次刷到困难难度的题 , 在沉默中努力,在机会中爆发。原创 2023-02-02 23:46:32 · 272 阅读 · 0 评论 -
代码随想录算法训练营第35天 回溯算法 java :455.分发饼干 376. 摆动序列53. 最大子序和
贪心算法 没有太多套路 只记得口诀 以局部最优推全局最优。原创 2023-02-01 08:33:14 · 249 阅读 · 0 评论 -
代码随想录算法训练营第32天 回溯算法 java :491.递增子序列 46.全排列47.全排列 II
把自律刻进DNA。原创 2023-01-31 00:57:48 · 474 阅读 · 0 评论 -
代码随想录算法训练营第31天 回溯算法 93.复原IP地址 78.子集 90.子集II
大多数优秀的程序员从事编程工作,不是因为期望获得报酬或得到公众的称赞,而是因为编程是件有趣的事儿。原创 2023-01-29 01:07:06 · 334 阅读 · 0 评论 -
代码随想录算法训练营第30天 二叉树 java :39. 组合总和 40.组合总和II 131.分割回文串
在处理组合问题的时候,递归参数需要传入startIndex,表示下一轮递归遍历的起始位置,这个startIndex就是切割线。从树形结构的图中可以看出:切割线切到了字符串最后面,说明找到了一种切割方法,此时就是本层递归的终止条件。在处理组合问题的时候,递归参数需要传入startIndex,表示下一轮递归遍历的起始位置,这个startIndex就是切割线。return res;return;i < j;} }原创 2023-01-28 01:00:33 · 387 阅读 · 0 评论 -
代码随想录算法训练营第23天 二叉树 java : 669. 修剪二叉搜索树108.将有序数组转换为二叉搜索树538.把二叉搜索树转换为累加树
永远饥饿 永远疲惫 永远孤独。原创 2023-01-21 18:43:52 · 1682 阅读 · 0 评论 -
代码随想录算法训练营第22天 二叉树 java :235. 二叉树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点
LeetCode 701.二叉搜索树中的插入操作 题目讲解 LeetCode 450.删除二叉搜索树中的节点 题目讲解原创 2023-01-21 13:40:28 · 993 阅读 · 0 评论 -
代码随想录算法训练营第二十天 二叉树 java : 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树
昨天家里来人了 延迟了一天晚上还得补今天的。原创 2023-01-17 13:53:59 · 412 阅读 · 0 评论 -
代码随想录算法训练营第十八天二叉树 java : .106 从中序与后序遍历序列构造二叉树113. 路径总和ii 112 路径总和 513.找树左下角的值
人的不幸在于他们不想走自己的那条路,总想走别人的路。递归三部曲确定递归函数的参数和返回值确定终止条件确定单层递归的逻辑。原创 2023-01-16 00:27:58 · 477 阅读 · 0 评论 -
代码随想录算法训练营第十七天二叉树 java : . 110.平衡二叉树 257.二叉树的所有路径 404.左叶子之和
选择一个简单的理念,矢志不渝地去执行(Take one simple idea and take it seriously递归三部曲确定递归函数的参数和返回值确定终止条件确定单层递归的逻辑马上打算开启 复习数据库和计网 了 今天触及到了 回溯算法 很兴奋。原创 2023-01-14 12:35:06 · 519 阅读 · 0 评论 -
代码随想录算法训练营第十六天二叉树 java : 104.二叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数
今天将主要围绕深度和高度来展开复习一下递归三部曲确定递归函数的参数和返回值确定终止条件确定单层递归的逻辑无论是求二叉树的最大深度还是最小深度 我都采用了后续遍历的方式左右 中 +1到父节点 加1再到根节点虽然不喜欢糊弄事 不过接下来还要配环境就到这吧。原创 2023-01-12 21:57:26 · 228 阅读 · 0 评论 -
代码随想录算法训练营第十五天字符串 java : 层序遍历 226.翻转二叉树 101. 对称二叉树
递归三定律确定参数和返回值确认终止条件确认单层递归的逻辑翻转二叉树的整体思路可以看图自己做的图加深一下理解困死了准备休息。原创 2023-01-12 00:58:48 · 264 阅读 · 0 评论 -
代码随想录算法训练营第十四天字符串 java :二叉树理论基础 144前序遍历 145后续遍历94 中序遍历
重点在于如何遍历二叉树 ,卡哥讲到要闭眼都能定义出二叉树可以理解为是一个链表int val;//定义值 TreeNode left;什么是List>原创 2023-01-11 00:38:07 · 250 阅读 · 0 评论 -
代码随想录算法训练营第十一天字符串 java :20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值
queue,双端队列)是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。当用作栈时,性能优于Stack,当用于队列时,性能优于LinkedList。今天开始使用Deque了 ,之前一直没接触过 双端队列 , 差不多可以了。☞ ArrayDeque的出队入队是通过头尾指针循环,利用数组实现的。与上一道题相似 都是消除类的题,这道题里的栈放的是已经遍历过的数据。如果都判断完了字符串里的i都走了一遍,栈里还有东西 不为空 也。和“/” 那块有点特殊。原创 2023-01-07 16:56:19 · 397 阅读 · 0 评论 -
代码随想录算法训练营第七天字符串 java :454 四数相加II、15三数之和、18 四数之和
对于哈希表,要知道哈希函数和哈希碰撞在哈希表中的作用哈希函数 是把传入的key映射到符号表的索引上。哈希碰撞 处理有多个key映射到相同索引上时的情景,处理碰撞的普遍方式是拉链法和线性探测法。接下来常见的三种哈希结构。原创 2023-01-05 12:07:28 · 449 阅读 · 0 评论 -
代码随想录算法训练营第八天字符串 java :344反转字符串、541 反转字符串II 、151反转字符串里的单词
字符串是若干字符组成的有限序列,也可以理解为是一个字符数组,但是很多语言对字符串做了特殊的规定,接下来我来说一说C/C++中的字符串。在C语言中,把一个字符串存入一个数组时,也把结束符 '\0’存入数组,并以此作为该字符串是否结束的标志。本来想多写点 这两天欠的有点多 得赶紧补补。之后在进行 反转就可以了。原创 2023-01-05 11:37:02 · 362 阅读 · 0 评论 -
代码随想录算法训练营第六天 java :242.有效的字母异位词 349. 两个数组的交集 ,1. 两数之和
哈希函数如下图所示,通过hashCode把名字转化为数值,一般hashcode是通过特定编码方式,可以将其他数据格式转化为不同的数值,这样就把学生名字映射为哈希表上的索引数字了。map目的用来存放我们访问过的元素,因为遍历数组的时候,需要记录我们之前遍历过哪些元素和对应的下表,这样才能找到与当前元素相匹配的(也就是相加等于target)判断元素是否出现,这个元素就要作为key,所以数组中的元素作为key,有key对应的就是value,value用来存下标。使用数组和set来做哈希法的局限。原创 2023-01-03 00:07:08 · 179 阅读 · 0 评论 -
代码随想录算法训练营第四天 java : 24. 两两交换链表中的节点 ,19.删除链表的倒数第N个节点 ,面试题 02.07. 链表相交,142环形链表II
慢指针slow的轨迹为 x+y, 快指针fast的轨迹为 x+y+n(y+z)由于slow每次移动都是一步 ,fast 是两步 如下图推导。今天听了一段 罗振宇的时间的朋友 他讲到 博尔赫斯的一段话。今天跨年,还在敲代码 呜呜呜 下面是AC代码。原创 2023-01-01 01:22:50 · 551 阅读 · 1 评论 -
代码随想录算法训练营第二天 java : 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,
滑动窗口主要要理解滑动窗口如何移动 窗口起始位置,达到动态更新窗口大小的,从而得出长度最小的符合条件的长度。模拟行为熟记掌握 循环不变量原则,万象不离其宗 作为面试频繁题型 我之后还要做做类似得。原创 2022-12-29 23:41:49 · 907 阅读 · 0 评论 -
代码随想录算法训练营第一天 java : 704.二分查找法、27.移除算法
1.暴力解法在找到要移除的val后,数组整体左移进行删除,此时在进入下一次循环时需要考虑到指针i的位置发生了变化,数组的长度也发生了变化,因此需要更新二者后再进入循环。2.双指针法定义快慢指针,快指针遍历数组,寻找val之外的元素,组成不含val元素的新数组;慢指针指向新数组的元素,一次循环后需要右移一位以便接收下次循环快指针找到的元素,当快指针遍历完nums,快指针的下标实际上就是新数组的长度。在原数组的废墟上建立新的堡垒。原创 2022-12-28 20:49:08 · 1139 阅读 · 0 评论