
代码随想录打卡
leetcode刷题笔记以及记录
hello_brucebat
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营第49天| 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II
代码思路dp[i][0] 表示第i天持有股票所得最多现金dp[i][1] 表示第i天不持有股票所得最多现金当第i天继续持有,一共两种状态:还有就是之前就买入, 第i天才买入分别是 dp[i][0] : dp[i-1][0] 和 -prices[i]当第i天不持有,也就是第i天那天卖出,或者是之前就卖出了,分别是dp[i - 1][1]和 prices[i]原创 2023-05-13 11:57:09 · 95 阅读 · 0 评论 -
代码随想录算法训练营第48天| 198. 打家劫舍、213.打家劫舍II、337.打家劫舍 III
代码思路dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]原创 2023-05-05 00:59:16 · 209 阅读 · 0 评论 -
代码随想录算法训练营第46天| 139. 单词拆分
【代码】代码随想录算法训练营第46天| 139. 单词拆分。原创 2023-04-30 21:03:25 · 182 阅读 · 0 评论 -
代码随想录算法训练营第45天| 70. 爬楼梯、322. 零钱兑换、279.完全平方数
代码思路。原创 2023-04-30 21:00:35 · 206 阅读 · 0 评论 -
代码随想录算法训练营第44天| 518. 零钱兑换 II、377. 组合总和 Ⅳ
代码思路递推式好像差不多,只是说初始化不太一样罢了。原创 2023-04-30 20:27:48 · 186 阅读 · 0 评论 -
代码随想录算法训练营第43天| 1049. 最后一块石头的重量 II、494.目标和、474. 一和零
代码思路二维数组,这道题的思路难点其实是怎么构建成背包问题。其实就是先构建成标准01背包问题,最后求出最后的最大价值,然后判断最后再判断这个最大价值和背包容量相减就可以。原创 2023-04-27 21:30:38 · 116 阅读 · 0 评论 -
代码随想录算法训练营第42天| 416. 分割等和子集
【代码】代码随想录算法训练营第42天| 416. 分割等和子集。原创 2023-04-27 11:46:47 · 205 阅读 · 0 评论 -
代码随想录算法训练营第41天| 343. 整数拆分、96. 不同的二叉搜索树
代码思路dp[i]就是答案。状态转移方程是max(i * (k-i), dp[i] * (k-i))。就是分成两种情况,第一种就是两个数相乘,第二种就是超过两个数相乘的情况。i * (k-i)是两个数相乘,dp[i] * (k-i)是超过两个数相乘的情况。但是重点还是先固定一个数,后面还有逐个逐个根据不同固定的数来比较一下。思路比较绕。原创 2023-04-24 15:29:11 · 115 阅读 · 0 评论 -
代码随想录算法训练营第39天| 62. 不同路径、63. 不同路径 II
代码思路状态转移方程(递推式)先想出来就没问题啦。原创 2023-04-24 13:58:38 · 49 阅读 · 0 评论 -
代码随想录算法训练营第38天| 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
代码思路dp[i]代表F(i),然后前面的推后面的,也就是所谓状态转移方程(题目已给出)原创 2023-04-20 23:29:37 · 132 阅读 · 0 评论 -
代码随想录算法训练营第37天| 738.单调递增的数字、968.监控二叉树
738.单调递增的数字:代码思路968.监控二叉树:代码思路原创 2023-04-20 23:00:10 · 126 阅读 · 0 评论 -
代码随想录算法训练营第36天| 435. 无重叠区间、763.划分字母区间、56. 合并区间
:代码思路原创 2023-04-20 22:57:17 · 194 阅读 · 0 评论 -
代码随想录算法训练营第35天| 860. 柠檬水找零、406. 根据身高重建队列、452. 用最少数量的箭引爆气球
写得好烂。原创 2023-04-19 16:43:34 · 115 阅读 · 0 评论 -
代码随想录算法训练营第34天| 1005. K 次取反后最大化的数组和、134. 加油站、135. 分发糖果
有点堆屎山的感觉。。。不可取啊。原创 2023-04-19 16:05:47 · 92 阅读 · 0 评论 -
代码随想录算法训练营第32天| 122. 买卖股票的最佳时机 II、55. 跳跃游戏
prices = [7,1,5,3,6,4],相邻两个元素只要是大于0,把大于0价差加起来就ok。因为只是问利润,但这并不是具体买卖过程。原创 2023-04-16 19:07:25 · 116 阅读 · 0 评论 -
代码随想录算法训练营第31天| 455. 分发饼干、376. 摆动序列 、53. 最大子数组和
【代码】代码随想录算法训练营第31天| 455. 分发饼干、376. 摆动序列 、53. 最大子数组和。原创 2023-04-14 20:49:04 · 104 阅读 · 0 评论 -
代码随想录算法训练营第29天| 491. 递增子序列、46. 全排列、47. 全排列 II
这题剪枝会有点烦,但是刷新了新的思路,就是在无序的数组,删掉重复的条件判断要改成 i > node_index+1 and nums[i] in nums[node_index+1:i]。因为这是树的每一层的广度,不是深度!广度是不可以有重复的。注意,不仅仅是根节点有广度,子节点也有他的广度。原创 2023-04-12 17:14:56 · 145 阅读 · 0 评论 -
代码随想录算法训练营第28天| 93. 复原 IP 地址、78. 子集、90. 子集 II
老套路,两个for加剪枝。但是剪枝的逻辑有点复杂,看看可不可以优化一下?原创 2023-04-11 21:50:34 · 57 阅读 · 0 评论 -
代码随想录算法训练营第27天| 39. 组合总和、40. 组合总和 II、131. 分割回文串
回溯的思想依然是for循环一边递归函数。原创 2023-04-10 19:31:55 · 110 阅读 · 0 评论 -
代码随想录算法训练营第十天| 232. 用栈实现队列、225. 用队列实现栈
栈实现队列实在pop的时候操作。原创 2023-03-24 20:15:27 · 59 阅读 · 0 评论 -
代码随想录算法训练营第四天| 24. 两两交换链表中的节点、19. 删除链表的倒数第N个节点、 面试题 02.07. 链表相交、142.环形链表II
该题是先构建节点的类,再在链表的类中调用节点类。原创 2023-03-18 20:38:09 · 49 阅读 · 0 评论 -
代码随想录算法训练营第十六天| 104. 二叉树的最大深度、111. 二叉树的最小深度、222. 完全二叉树的节点个数
该题的关键是在于递归返回两个数,一个数是最大层数,一个数是底层的叶子节点数,最后用公式2*(最大层数 - 1) + 叶子节点数的公式得出。让左右节点均为空结点的时候,这可能是叶子节点,也可能是没有子节点伯父节点。原创 2023-03-30 16:13:35 · 95 阅读 · 0 评论 -
代码随想录算法训练营第十一天| 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值
【代码】代码随想录算法训练营第十一天| 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值。原创 2023-03-25 15:31:29 · 56 阅读 · 0 评论 -
代码随想录算法训练营第九天| 28. 找出字符串中第一个匹配项的下标
【代码】代码随想录算法训练营第九天| 28. 找出字符串中第一个匹配项的下标。原创 2023-03-23 22:29:38 · 127 阅读 · 0 评论 -
代码随想录算法训练营第21天| 530. 二叉搜索树的最小绝对差、501. 二叉搜索树中的众数、236. 二叉树的最近公共祖先
【代码】代码随想录算法训练营第21天| 530. 二叉搜索树的最小绝对差、501. 二叉搜索树中的众数、236. 二叉树的最近公共祖先。原创 2023-04-05 20:43:00 · 49 阅读 · 0 评论 -
代码随想录算法训练营第六天| 242. 有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
242. 有效的字母异位词:代码思路class Solution: def isAnagram(self, s: str, t: str) -> bool: from collections import defaultdict if len(s) != len(t): return False hashset = defaultdict(int) for i in range(len(s)):原创 2023-03-20 17:13:36 · 59 阅读 · 0 评论 -
代码随想录算法训练营第三天| 203. 移除链表元素、707. 设计链表、206. 反转链表
设置好pre前置节点,和cur现在节点这些变量,就好搞。但是要注意,空节点是None,而None是没有next和val这些方法的。原创 2023-03-17 21:06:24 · 60 阅读 · 0 评论 -
代码随想录算法训练营第18天| 513. 找树左下角的值、112. 路径总和、106. 从中序与后序遍历序列构造二叉树
迭代法。原创 2023-04-02 22:06:49 · 158 阅读 · 0 评论 -
代码随想录算法训练营第十五天| 226. 翻转二叉树、101. 对称二叉树
这一题我不用递归,实现层序遍历,层序遍历属于bfs,bfs第一反应就是队列。但其实递归也可以搞bfs,而且更简单。原创 2023-03-30 14:16:31 · 116 阅读 · 0 评论 -
代码随想录算法训练营第七天| 454. 四数相加 II、383. 赎金信、15. 三数之和、18. 四数之和
哈希表的很多思路都是记录出现的次数,这题也不例外。该题的思路极限只能降到 O(2*n^2)。原本是n的四次方。因为将四个数组分为两组,然后用两个哈希表分别存储这两组的结果,key是相加的结果(为了确保key相同,第二个哈希表的key取加和的相反数),value是出现这个结果的次数。最后哈希对应key的value相乘(排列组合中的乘法公式)。原创 2023-03-21 15:42:00 · 57 阅读 · 0 评论 -
代码随想录算法训练营第26天| 216. 组合总和 III、17. 电话号码的字母组合
【代码】代码随想录算法训练营第26天| 216. 组合总和 III、17. 电话号码的字母组合。原创 2023-04-08 12:51:16 · 100 阅读 · 0 评论 -
代码随想录算法训练营第22天| 235. 二叉搜索树的最近公共祖先、701. 二叉搜索树中的插入操作、450. 删除二叉搜索树中的节点
【代码】代码随想录算法训练营第22天| 235. 二叉搜索树的最近公共祖先、701. 二叉搜索树中的插入操作、450. 删除二叉搜索树中的节点。原创 2023-04-06 20:31:33 · 49 阅读 · 0 评论 -
代码随想录算法训练营第十四天| 144. 二叉树的前序遍历、94. 二叉树的中序遍历、145. 二叉树的后序遍历
【代码】代码随想录算法训练营第十四天| 144. 二叉树的前序遍历、94. 二叉树的中序遍历、145. 二叉树的后序遍历。原创 2023-03-29 09:45:52 · 71 阅读 · 0 评论 -
代码随想录算法训练营第十三天| 239. 滑动窗口最大值、347. 前 K 个高频元素
单调队列:单调递减队列。首先初始化好开头的前k个的最大值。然后每当right_bound向右走一步,res就要添加一个最大值。最大值永远是mq[0]。因为mq是一个单调递减的队列。也就是右边入队的永远比队列中的值小,如果大于队列中的值,则删除队列中大于这个入队的数的值。注意的是还要判断滑窗左边缘的值是不是最大值,如果是,下一次滑窗得删除,如果不是则保留。原创 2023-03-27 16:46:50 · 54 阅读 · 0 评论 -
代码随想录算法训练营第八天| 344. 反转字符串、541. 反转字符串 II、剑指 Offer 05. 替换空格、151. 反转字符串中的单词、剑指 Offer 58 - II. 左旋转字符串
【代码】代码随想录算法训练营第八天| 344. 反转字符串、541. 反转字符串 II、剑指 Offer 05. 替换空格、151. 反转字符串中的单词、剑指 Offer 58 - II. 左旋转字符串。原创 2023-03-22 13:42:22 · 48 阅读 · 0 评论 -
代码随想录算法训练营第23天| 669. 修剪二叉搜索树、108. 将有序数组转换为二叉搜索树、538. 把二叉搜索树转换为累加树
【代码】代码随想录算法训练营第23天| 669. 修剪二叉搜索树、108. 将有序数组转换为二叉搜索树、538. 把二叉搜索树转换为累加树。原创 2023-04-07 17:49:25 · 44 阅读 · 0 评论 -
代码随想录算法训练营第17天| 110. 平衡二叉树、257. 二叉树的所有路径、404. 左叶子之和
判断是否平衡,就是判断左子树和右子树的最深深度之差是否超过1。原创 2023-04-01 12:11:16 · 93 阅读 · 0 评论 -
代码随想录算法训练营第20天| 617. 合并二叉树、700. 二叉搜索树中的搜索、98. 验证二叉搜索树
【代码】代码随想录算法训练营第十九天| 617. 合并二叉树、700. 二叉搜索树中的搜索、98. 验证二叉搜索树。原创 2023-04-04 12:45:32 · 51 阅读 · 0 评论 -
代码随想录算法训练营第24天| 669. 组合
【代码】代码随想录算法训练营第24天| 669. 组合。原创 2023-04-08 11:29:53 · 53 阅读 · 0 评论