自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营第三十七天 | 完全背包理论基础、518. 零钱兑换 II、377. 组合总和 Ⅳ、70. 爬楼梯(进阶)

题目链接:文章讲解:视频讲解:题目链接:文章讲解:视频讲解:题目链接:文章讲解:​​​​​​​视频讲解:题目链接:文章讲解:​​​​​。

2024-08-05 20:41:00 134

原创 代码随想录算法训练营第三十六天 | 1049. 最后一块石头的重量 II、494. 目标和、474.一和零

1. 确定 dp 数组及下标含义:2. 确定递推公式:3. 确定dp数组如何初始化:4. 确定遍历顺序:5. 举例推导dp数组。

2024-08-05 20:35:12 62

原创 代码随想录算法训练营第三十五天 | 0-1背包问题 二维、0-1背包问题 一维、416. 分割等和子集

0-1背包:n种物品,每种物品只有一个;完全背包:n种物品,每种物品无限个;多重背包:n种物品,每种物品个数各不相同。

2024-08-04 22:50:52 209

原创 代码随想录算法训练营第三十四天 | 62.不同路径、63. 不同路径 II、343. 整数拆分、96. 不同的二叉搜索树

1. 确定 dp 数组及下标含义:dp[ i ][ j ]代表从 (0, 0) 到 (i , j) 有多少种不同的路径2. 确定递推公式:只能由上推下或左推右 ,dp[ i ][ j ] = dp[ i - 1 ][ j ] + dp[ i ][ j - 1 ],其中dp[ i - 1 ][ j ] 代表走到 [ i ][ j ] 上面格子有多少种路径,dp[ i ][ j - 1 ] 代表走到 [ i ][ j ] 左面格子有多少种路径。

2024-08-02 21:04:22 215

原创 代码随想录算法训练营第三十三天 | 动态规划理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

1. 动态规划基础;2. 背包问题;3. 打家劫舍;4. 股票问题;5. 子序列问题。1. 确定 dp[ i ] 数组及下标含义;2. 确定递推公式;3.确定dp数组如何初始化;4. 确定遍历顺序(背包问题中很重要);5. 举例推导dp数组。

2024-08-01 22:43:40 290

原创 代码随想录算法训练营第三十二天 | 56. 合并区间、738.单调递增的数字、968.监控二叉树、贪心算法总结

代码随想录 (programmercarl.com)——贪心算法总结。

2024-07-29 09:47:28 200

原创 代码随想录算法训练营第三十天 | 452. 用最少数量的箭引爆气球、435. 无重叠区间、763.划分字母区间

题目链接:文章讲解:视频讲解:题目链接:文章讲解:视频讲解:题目链接:文章讲解:

2024-07-29 09:35:05 163

原创 代码随想录算法训练营第二十九天 | 134. 加油站、135. 分发糖果、860.柠檬水找零、406.根据身高重建队列

cursum累加每个站点剩余油量(gas[i] - cost(i)),如果遇到负,令 i+1 为新的起始位置,看能否跑完一圈。

2024-07-29 09:29:49 280

原创 代码随想录算法训练营第二十八天 | 122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II、1005.K次取反后最大化的数组和

假如第 0 天买入,第 3 天卖出,那么利润为:prices[3] - prices[0],相当于(prices[3] - prices[2]) + (prices[2] - prices[1]) + (prices[1] - prices[0])。所以只需要统计两天利润的差值,最后将所有整数相加即可。

2024-07-18 16:59:28 298

原创 代码随想录算法训练营第二十七天 | 贪心算法理论基础、455.分发饼干、376. 摆动序列、53. 最大子序和

局部最优推出全局最优。

2024-07-16 22:51:22 131

原创 代码随想录算法训练营第二十六天 | 491.递增子序列、46.全排列、47.全排列 II、332.重新安排行程、51.N皇后、37.解数独、回溯算法总结

代码随想录 (programmercarl.com)——回溯算法总结。

2024-07-16 22:40:50 249

原创 代码随想录算法训练营第二十五天 | 93.复原IP地址、78.子集、90.子集II

题目链接:文章讲解:视频讲解:题目链接:文章讲解:视频讲解:题目链接:文章讲解:

2024-07-16 22:39:54 121

原创 代码随想录算法训练营第二十三天 | 39. 组合总和、40.组合总和II、131.分割回文串

第二个元素的分支不带第一个元素先排序,只要有一个分支sum大于target,则没有必要继续遍历,剪枝。

2024-07-16 22:36:03 281

原创 代码随想录算法训练营第二十二天 | 回溯理论基础、77. 组合、216.组合总和III、17.电话号码的字母组合

修改for循环的范围,len(path)表示已经选取元素的大小,用 (k - len(path) 得到还需要选取元素的个数,至多还剩 (n - ( k - len(path) ) + 2) 个元素需要选取,range函数为左闭右开区间。先用map做一个映射,构造n叉树,结果为n叉树的叶子节点。输入数字的个数,控制树的深度;(1)组合问题:N个数里面按一定规则找出k个数的集合;(2)切割问题:给一个字符串,问右几种切割方式;(3)子集问题:N个数有多少个符合条件的子集;(5)棋盘问题:N皇后,解数独等。

2024-07-15 23:10:39 931

原创 代码随想录算法训练营第二十一天 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树、二叉树总结

代码随想录 (programmercarl.com)——二叉树总结。

2024-07-12 21:23:05 159

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

当遍历根节点比p, q都大的话,说明p, q在左子树里,此时向左遍历;如果当前遍历节点比p, q都小的话,说明在右子树里;如果当前节点位于p, q之间,说明位公共节点。

2024-07-11 21:35:23 246

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

中序遍历后,计算两两节点差值。定义一个cur 一个pre两个指针,用cur-pre,用res记录下来差值,res最小值即为所求。遇到二叉树求最值得题目,想一下二叉树遍历时候是否有序!

2024-07-11 16:52:52 351

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

构造二叉树类题目都用前序遍历。

2024-07-10 22:49:57 298

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

③ 根节点作为中序数组的切割点,分成左右区间;③ 根节点作为中序数组的切割点,分成左右区间;② 后序数组最后一个元素为根节点;② 前序数组第一个元素为根节点;① 后序数组为0,则空节点;① 前序数组为0,则空节点;⑥ 递归处理左右区间。⑥ 递归处理左右区间。找深度最大的叶子节点。

2024-07-10 13:14:34 416

原创 代码随想录算法训练营第十五天 | 110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和、222.完全二叉树的节点个数

运算符 "<<" 表示左移位操作符,假设leftdepth = 3,那么 2 << leftdepth = 2 * 2 ^ 3 = 16。通过父节点判断子节点是否为想要收集的元素,父节点左子节点不为空,且左子节点左右都为空则为我们要操作的元素。,判断左子树和右子树是否为满二叉树(左和右深度相等),相加最后再加根节点1。前序遍历,因为需要父节点指向子节点,并将路径输出。后序遍历,需要一层一层向上返回。

2024-07-09 22:45:58 245

原创 代码随想录算法训练营第十四天 | 226.翻转二叉树、 101. 对称二叉树、104.二叉树的最大深度、111.二叉树的最小深度

中序遍历时候注意继续交换左子树,因为处理根节点时候第二层左右交换位置了,原来的右变成现在的左。不建议写中序遍历!!

2024-07-09 13:19:46 353

原创 代码随想录算法训练营第十三天 | 二叉树理论基础、递归遍历、迭代遍历、统一迭代、层序遍历

满二叉树:节点数量。完全二叉树:底部从左到右。二叉搜索树:左子树所有节点小于中间节点,右子树所有节点大于中间节点,时间复杂度为log(n)。平衡二叉搜索树:左子树和右子树高度差不能超过1。链式存储:为一个链表,指针指向两个子节点。线式存储:用一个字符数组保存二叉树,左子节点为 ,右子节点为 。递归遍历(深度优先搜索):一直搜到终点再回头换方向,一般用递归实现,也可以用迭代法解决。常见方式:前中后序遍历,前序遍历——中左右,中序遍历——左中右,后续遍历——左右中,什么序中在哪。层序遍历(广度优先搜索):一层一

2024-07-08 22:19:28 646

原创 代码随想录算法训练营学习目录

代码随想录训练营目录

2024-07-05 20:49:36 148

原创 代码随想录算法训练营第十二天 | 150. 逆波兰表达式求值、239. 滑动窗口最大值、347.前 K 个高频元素、总结

代码随想录 (programmercarl.com)——栈与队列总结。

2024-07-05 20:39:17 259

原创 代码随想录算法训练营第十一天 | 栈与队列理论基础、232.用栈实现队列、225. 用队列实现栈、20. 有效的括号、1047. 删除字符串中的所有相邻重复项

(一个队列模拟栈)元素1弹出队列再加入队列,元素2弹出队列再加入队列,重复操作,可以取出队列中最后一个元素。:定义一个栈,每遍历一个元素都要去栈里查找前一个遍历的元素是否匹配,匹配弹出,不匹配存入栈。③多右括号,没有左括号与之匹配,如 [ { } ] ( )[ { } ] ( );②括号类型不匹配,如 [ {:用两个栈改变元素顺序,实现队列。:遇到左括号,把对应右括号加入栈;:入栈所有元素放到出栈里面!

2024-07-01 23:14:51 339

原创 代码随想录算法训练营第九天 | 151.翻转字符串里的单词、卡码网:55.右旋转字符串、28. 实现 strStr()、459.重复的子字符串、字符串总结、双指针回顾

代码随想录 (programmercarl.com)——字符串总结。

2024-07-01 10:04:21 178

原创 代码随想录算法训练营第八天 | 344.反转字符串、541. 反转字符串II、 卡码网:54.替换数字

首位交换→双指针法。

2024-06-28 21:02:08 285

原创 代码随想录算法训练营第七天 | 454. 四数相加Ⅱ、383. 赎金信、15. 三数之和、18. 四数之和、总结

代码随想录 (programmercarl.com)——哈希表总结。

2024-06-27 23:20:50 697

原创 代码随想录算法训练营第六天 | 哈希表理论基础、242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

哈希表理论基础。

2024-06-27 18:13:13 642

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

代码随想录 (programmercarl.com)——链表总结。

2024-06-26 17:25:10 274

原创 代码随想录算法训练营第四天 | 链表理论基础、203.移除链表元素、707.设计链表、206.反转链表

在第n个节点前插入节点和删除第n个节点的操作中,cur为n-1个节点,cur.next才为第n个节点,此时才好操作,否则会出现加错位置的情况。思想:定义cur和pre两个指针,cur指向pre,cur和pre向前移动,cur再指向pre,不断重复,直到结束。主要考察链表基本操作:获取第几个节点的值;第n个节点前插入节点;定义cur = head而不是cur = head.next,因为需要上一个元素的指针。需要判断是否为头节点,如果不是直接指针指向下一个节点,如果是将头节点head→next。

2024-06-24 22:41:20 294 1

原创 代码随想录算法训练营第二天 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结

代码随想录 (programmercarl.com) ——数组总结。

2024-06-24 14:35:29 241 1

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

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

2024-06-21 23:05:20 297

空空如也

空空如也

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

TA关注的人

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