- 博客(63)
- 收藏
- 关注
原创 Leetcode Algo Day3
Problem: 203. Remove Linked List ElementsTime: 10minMethod: Dummy head Reflection: When a node is deleted, current cursor should not move to the next node because the cur.next.val has not been checked yet. Time complexity: O(N)Space complexity: O(1)Problem
2024-03-10 05:08:37 508
原创 Leetcode Algo Day2
977. Squares of a Sorted ArrayTime: 10minMethod: two pointers - front vs endReflection: index boundaryTime complexity: O(N)Space complexity: O(N)209. Minimum Size Subarray SumTime: 10minMethod: two pointers - sliding windowReflection: Subarray is a contigi
2024-03-08 11:35:15 356
原创 Leetcode Algo Day1
704. Binary SearchTime: 11minMethod: binary searchReflection: need to break from while look when the target is foundTime complexity: O(logN)Space Complexity: O(1) 27. Remove ElementTime: 10minMethod: brute forceReflection: index boundary; while vs for loop
2024-03-08 11:34:13 297
原创 力扣算法刷题Day58|单调栈:每日温度 下一个更大元素I
力扣题目:#739. 每日温度刷题时长:参考题解后15min解题方法:单调栈复杂度分析问题总结本题收获力扣题目:# 496.下一个更大元素 I刷题时长:参考题解后5min解题方法:单调栈复杂度分析问题总结本题收获
2023-07-07 09:42:05 352
原创 力扣算法刷题Day57|动态规划:回文子串 最长回文子序列
情况三:下标:i 与 j相差大于1的时候,例如cabac,此时s[i]与s[j]已经相同了,我们看i到j区间是不是回文子串就看aba是不是回文就可以了,那么aba的区间就是 i+1 与 j-1区间,这个区间是不是回文就看dp[i + 1][j - 1]是否为true。动规思路:判断字符串S是否是回文,那么如果我们知道 s[1],s[2],s[3] 这个子串是回文的,那么只需要比较 s[0]和s[4]这两个元素是否相同,如果相同的话,这个字符串s 就是回文串。dp数组的初始化:都为false。
2023-07-05 17:00:11 271
原创 力扣算法刷题Day56|动态规划:两个字符串的删除操作 编辑距离
当word1[i - 1] 与 word2[j - 1]不相同:dp[i][j] = min({dp[i - 1][j - 1] + 2, dp[i - 1][j] + 1, dp[i][j - 1] + 1})dp[0][j]同理。情况三:同时删word1[i - 1]和word2[j - 1],操作的最少次数为dp[i - 1][j - 1] + 2。当word1[i - 1] 与 word2[j - 1]相同:dp[i][j] = dp[i - 1][j - 1]
2023-07-04 14:19:41 323
原创 力扣算法刷题Day55|动态规划:判断子序列 不同的子序列
一部分是用s[i - 1]来匹配,那么个数为dp[i - 1][j - 1]。当s[i - 1] 与 t[j - 1]相等时,dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j]确定dp数组及下标的含义:dp[i][j]:以i-1为结尾的s子序列中出现以j-1为结尾的t的个数为dp[i][j]当s[i - 1] 与 t[j - 1]不相等时,dp[i][j] = dp[i - 1][j]一部分是不用s[i - 1]来匹配,个数为dp[i - 1][j]。
2023-07-03 19:17:09 274
原创 力扣算法刷题Day54|休息日总结:动态规划之股票问题
可以多次买卖但每次卖出有冷冻期1天。最多买卖k笔交易,问最大收益。可以多次买卖,但每次有手续费。最多买卖两次,问最大收益。
2023-07-03 17:55:27 83
原创 力扣算法刷题Day53|动态规划:最长公共子序列 不相交的线 最大子序和
力扣题目:#1143.最长公共子序列刷题时长:参考题解后5min解题方法:动态规划复杂度分析问题总结本题收获 dp数组的初始化:统一初始为0 确定遍历顺序:从前向后,从上到下 力扣题目:#1035.不相交的线刷题时长:解题方法:动态规划复杂度分析问题总结本题收获力扣题目:#53. 最大子序和刷题时长:参考题解后5min解题方法:动态规划复杂度分析问题总结本题收获
2023-06-30 18:17:07 310
原创 力扣算法刷题Day52|动态规划:最长递增子序列 最长连续递增序列 最长重复子数组
674. 最长连续递增序列。718. 最长重复子数组。300.最长递增子序列。
2023-06-30 11:42:47 406
原创 力扣算法刷题Day51|动态规划:买卖股票的最佳时机含冷冻期 & 含手续费
(状态一)dp[i][0] = max(dp[i - 1][0], dp[i - 1][3] - prices[i], dp[i - 1][1] - prices[i])(状态二)dp[i][1] = max(dp[i - 1][1], dp[i - 1][3])(状态三)dp[i][2] = dp[i - 1][0] + prices[i](状态四)dp[i][3] = dp[i - 1][2]309.最佳买卖股票时机含冷冻期。714.买卖股票的最佳时机含手续费。昨天卖出了股票(状态三)
2023-06-29 17:52:01 650
原创 力扣算法刷题Day50|动态规划:买卖股票的最佳时机III & IV
确定dp数组及下标的含义:dp[i][j]中 i表示第i天,j为 [0 - 4] 五个状态,dp[i][j]表示第i天状态j所剩最大现金。操作二:第i天没有操作,而是沿用前一天买入的状态,即:dp[i][1] = dp[i - 1][1]操作一:第i天买入股票了,那么dp[i][1] = dp[i-1][0] - prices[i]没有操作 (其实我们也可以不设置这个状态)dp数组的初始化:需理解可当日买进后卖出。188.买卖股票的最佳时机IV。空间复杂度:O(n × 5)时间复杂度:O(n)
2023-06-29 14:57:41 288
原创 力扣算法刷题Day49|动态规划:买卖股票的最佳时机 I & II
同样dp[i][1]取最大的,dp[i][1] = max(dp[i - 1][1], prices[i] + dp[i - 1][0]);那么dp[i][0]应该选所得现金最大的,所以dp[i][0] = max(dp[i - 1][0], -prices[i]);确定dp数组及下标的含义:dp[i][0] 表示第i天持有股票所得最多现金,dp[i][1] 表示第i天不持有股票所得最多现金。第i天卖出股票,所得现金就是按照今天股票价格卖出后所得现金即:prices[i] + dp[i - 1][0]
2023-06-28 15:26:20 265
原创 力扣算法刷题Day45|动态规划:爬楼梯 零钱兑换 完全平方数
力扣题目:#70. 爬楼梯刷题时长:5min解题方法:动态规划复杂度分析问题总结本题收获力扣题目:#322. 零钱兑换刷题时长:30min解题方法:动态规划复杂度分析问题总结本题收获力扣题目:#279.完全平方数刷题时长:10min解题方法:动态规划复杂度分析问题总结本题收获
2023-06-21 14:32:17 849
原创 力扣算法刷题Day44|动态规划:完全背包问题 零钱兑换II 组合总和Ⅳ
力扣题目:#518.零钱兑换II(完全背包组合问题)刷题时长:7min解题方法:动态规划(完全背包)复杂度分析问题总结本题收获力扣题目:#377.组合总和Ⅳ(完全背包排列问题)刷题时长:7min解题方法:动态规划(完全背包)复杂度分析问题总结本题收获
2023-06-21 12:56:54 1008
原创 力扣算法刷题Day43|动态规划:最后一块石头的重量II 目标和 一和零
力扣题目:#1049.最后一块石头的重量II刷题时长:5min解题方法:动态规划复杂度分析问题总结本题收获力扣题目:#494.目标和刷题时长:参考题解后15min解题方法:动态规划复杂度分析问题总结本题收获力扣题目:#474.一和零刷题时长:参考题解后15min解题方法:动态规划复杂度分析问题总结本题收获
2023-06-20 13:52:48 603
原创 力扣算法刷题Day39|动态规划:不同路径 I&II
力扣题目:#62.不同路径刷题时长:参考题解后10min解题方法:动规复杂度分析问题总结本题收获力扣题目:#63. 不同路径 II刷题时长:30min解题方法:动规复杂度分析问题总结本题收获
2023-06-16 13:49:34 1271
原创 力扣算法刷题Day33|休息日总结:回溯 & 去重
回溯 〉理论基础回溯 〉适用题型回溯 〉解题技巧回溯 〉解题技巧 〉组合问题回溯 〉解题技巧 〉切割问题回溯 〉解题技巧 〉子集问题回溯 〉解题技巧 〉排列问题回溯 〉解题技巧 〉图论问题回溯 〉解题技巧 〉棋盘问题回溯 〉复杂度分析回溯 〉复杂度分析 〉子集问题回溯 〉复杂度分析 〉组合问题回溯 〉复杂度分析 〉排列问题回溯 〉复杂度分析 〉棋盘问题 〉N皇后回溯 〉复杂度分析 〉棋盘问题 〉解数独
2023-06-11 10:02:40 127
原创 力扣算法刷题Day30|回溯:重新安排行程 N皇后 解数独
力扣题目:#332.重新安排行程刷题时长:参考题解解题方法:回溯法 + 哈希表复杂度分析问题总结本题收获力扣题目:#51. N皇后刷题时长:参考答案解题方法:回溯 + 判断函数复杂度分析问题总结本题收获力扣题目:#37. 解数独刷题时长:参考答案解题方法:回溯 + 二维递归复杂度分析问题总结本题收获
2023-06-09 12:05:36 178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人