- 博客(37)
- 收藏
- 关注
原创 day41 | 416. 分割等和子集
定义dp数组dp[i][j]:i 表示 0 - i 之间的物品,任取,放进容量 为 j 的背包里 的最大价值递推公式:dp[i][j] 由两个方向推出来,即放当前的物品i,与不放当前的物品i不放物品 i, dp[ i - 1] [j]放物品i, dp[i - 1] [ j - weight[ i ]] + value[i]dp[i][j] = max(不放物品 i, 放物品 i)初始化:遍历顺序:先遍历物品,再遍历背包:先遍历背包,再遍历物品:不管遍历顺序如何,当前元素都是由
2023-05-17 15:26:05 79
原创 day41 | 343 整数拆分,96 不同的二叉搜索树
dp数组含义dp[i]: 对 i 进行拆分,dp[i] 表示拆分后得到的最大乘积递推公式:对于 i , 拆成两个数:j (遍历 1 - i) , i - j;拆成三个数: j * dp[i - j]初始化:dp[ 0] 没有意义 = 0dp[ 1] 没有意义 = 0dp[ 2] = 1遍历顺序:i <= n;j++) {
2023-05-16 18:25:19 59
原创 day39 | 62 不同路径, 63 不同路径II
dp数据含义:dp[i][j] : 从0, 0到i, j有多少种不同路径递推公式:dp i j 由 dp i-1, j 和 dp i, j-1 推导出来初始化:i < n;j < n;遍历顺序:从左往右遍历(因为初始值在左面)从上往下遍历(因为初始值在上面)
2023-05-13 10:53:03 27
原创 day38 | 509斐波那契数,70 爬楼梯,746 使用最小花费爬楼梯
动规基础背包问题打家劫舍股票问题子序列问题动态规划五部曲:dp数组以及下标的含义,dp[i]是什么意思,dp[i]中的i是什么意思递推公式dp数组如何初始化遍历顺序打印dp数组【主要用来debug】
2023-05-12 14:58:24 33
原创 day36 | 435 无重叠区间,763 划分字母区间,56 合并区间
【代码】day36 | 435 无重叠区间,763 划分字母区间,56 合并区间。
2023-05-10 09:18:02 26
原创 day35 | 860 柠檬水找零, 406 根据身高重建队列,452 用最少数量的箭引爆气球
【代码】day35 | 860 柠檬水找零, 406 根据身高重建队列,452 用最少数量的箭引爆气球。
2023-05-10 08:40:22 27
原创 day34 | 1005 K次取反后最大化的数组和,134 加油站,135 分发糖果
【代码】day34 | 1005 K次取反后最大化的数组和,134 加油站,135 分发糖果。
2023-05-08 09:18:47 25
原创 day32 | 122 买卖股票的最佳时机II,55 跳跃游戏,45 跳跃游戏II
【代码】day32 | 122 买卖股票的最佳时机II,55 跳跃游戏,45 跳跃游戏II。
2023-05-06 08:56:23 34
原创 day31 | 455 分发饼干, 376 摆动序列,53 最大子序和
【代码】day31 | 455 分发饼干, 376 摆动序列,53 最大子序和。
2023-05-05 08:28:36 32
原创 day25 | 216 组合总和III,17 电话号码的字母组合
两层for循环,每层for循环都从1到9k= 3 则用 三层for循环k控制树的深度,【1,9】控制树的宽度。
2023-04-30 08:35:24 94
原创 day24 | 77组合
k ++)如果 n = 100, k = 50的话,我们就得写50层for循环,所以我们要别谋出路回溯算法的树形结构:回溯算法三部曲:1.递归函数参数和返回值2.确定终止条件3.单层递归逻辑。
2023-04-28 20:18:34 34
原创 day23 | 669 修剪二叉搜索树,108 将有序数组转换为二叉搜索树,538 把二叉搜索树转换为累加树
数组长度为偶数时,中间节点取左边或右边都可以,以-10和-3为例,取左边的-10,那-10的右节点为-3;取右边的-3,那-3的左节点为-10,都符合二叉搜索树的条件。中序遍历(左中右)会得到一个递增的序列,如果使用(右中左)则会得到一个递减的序列。数组长度为奇数时,中间节点可以直接取。
2023-04-27 22:22:04 36
原创 day21 | 530 二叉搜索树的最小绝对差, 501 二叉搜索树中的众数,236 二叉树的最近公共祖先
暴力:中序遍历,存到数组,再遍历数组,求相邻的最小绝对差双指针:cur - pre为相邻节点的差值。
2023-04-25 21:39:44 26
原创 day20 | 654 最大二叉树,617 合并二叉树,700 二叉搜索树中的搜索,98 验证二叉搜索树
使用前序遍历先构造中节点有点复杂,待加深理解。
2023-04-24 21:40:58 25
原创 day17 | 513 找树左下角的值,
求深度最大小叶子节点使用前,后,中序都可以,因为本题没有对中节点的处理逻辑,只要我们先遍历左节点,就可以。
2023-04-22 16:03:02 22
原创 day15 | 104.二叉树的最大深度,111.二叉树的最小深度,222.完全二叉树的节点个数
求根节点的高度:根节点的高度就是二叉树的深度后序遍历:左右中// 高度为0左:int leftHeight = getHeight(node.left);右:int rightHeight = getHeight(node.right);中:int height = 1 + max(leftHeight, rightHeight);
2023-04-20 21:38:04 45
原创 day 15 | 102 层序遍历, 226 翻转二叉树, 101 对称二叉树
借助队列帮助我们保存二叉树的每一层根节点加入队列,记录队列的大小(size = 1)将根节点弹出并保存, 并将根节点的左右节点加入队列,再记录队列个数。
2023-04-19 16:22:46 23
原创 day11 | 20 有效的括号,1047 删除字符串中的所有相邻重复项,150 逆波兰表达式求值
day11 | 20 有效的括号,1047 删除字符串中的所有相邻重复项,150 逆波兰表达式求值
2023-04-15 17:19:57 35
原创 day8 | 334 反转字符串, 541 反转字符串II,剑指Offer 05 替换空格,151 翻转字符串里的单词,剑指Offfer 58-II 左旋转字符串
day8 | 334 反转字符串, 541 反转字符串II,剑指Offer 05 替换空格,151 翻转字符串里的单词,剑指Offfer 58-II 左旋转字符串
2023-04-12 21:04:17 26
原创 day 7 | 454 四数相加II, 383 赎金信,15 三数之和,18 四数之和
day 7 | 454 四数相加II, 383 赎金信,15 三数之和,18 四数之和
2023-04-11 22:53:45 72
原创 day6 | 242 有效的字母异位词,349 两个数组的交集,202 快乐数,1 两数之和
day6 | 242 有效的字母异位词,349 两个数组的交集,202 快乐数,1 两数之和
2023-04-10 22:48:44 27
原创 day4 | 24 两两交换链表中的节点,19 删除链表的倒数第N个节点,142 环形链表II,02 07 链表相交
题意是两两交换,而不是相邻交换。
2023-04-09 00:12:27 37 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人