2024.07.05 刷题日记 322. 零钱兑换动态规划,dp[i] 的定义为 i 块钱兑换的最少硬币数。状态转移为: 12345for (int coin : coins) { if (i - coin >= 0) { dp[i] = min(dp[i], dp[i - coin] + 1); } 2024-07-05 LeetCode #算法 #数据结构 #leetcode
2024.07.02 刷题日记 70. 爬楼梯示例 1: 输入:n = 2输出:2解释:有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入:n = 3输出:3解释:有三种方法可以爬到楼顶。 1 阶 + 1 阶 + 1 阶 1 阶 + 2 阶 2 阶 + 1 阶 状态定义:dp[i],代表着当前阶梯到达的不同方法数。状态转移方程:dp[i] = dp[i-1]+dp[i- 2024-07-02 LeetCode #算法 #数据结构 #leetcode
2024.06.30 刷题日记 121. 买卖股票的最佳时机实例 1: 输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。 示例 2: 输入:prices 2024-06-30 LeetCode #算法 #数据结构 #leetcode
2024.06.29 刷题日记 739. 每日温度给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例 1: 输入: temperatures = [73,74,75,71,69,72,76,73]输出: [1,1,4,2,1,1,0,0] 2024-06-29 LeetCode #算法 #数据结构 #leetcode
2024.06.28 刷题日记 394. 字符串解码给定一个经过编码的字符串,返回它解码后的字符串。 示例 1: 输入:s = “3[a]2[bc]”输出:”aaabcbc” 示例 2: 输入:s = “3[a2[c]]”输出:”accaccacc” 示例 3: 输入:s = “2[abc]3[cd]ef”输出:”abcabccdcdcdef” 示例 4: 输入:s = 2024-06-28 LeetCode #算法 #数据结构 #leetcode
2024.06.26 刷题日记 20. 有效的括号利用栈: 1234567891011121314class Solution {public: bool isValid(string s) { std::map<char, int> m = {{'(', -1}, {')', 1}, 2024-06-26 LeetCode #算法 #数据结构 #leetcode
2024.06.25 刷题日记 704. 二分查找这种题有多种写法,我认为应该固定一种写法,从而养成自己的编程直觉,不然很容易造成思维混乱。二分查找说难不难,说简单也不简单。最难的点就是处理边界条件,有时候多个等号会通过,少个等号就通过不了关键是还不知道为什么能过。 示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标 2024-06-25 LeetCode #算法 #数据结构 #leetcode
2024.06.24 刷题日记 17. 电话号码的字母组合依然是昨天的回溯,思路是根据 index,来确定要回溯的对象: 1234567891011121314151617181920212223242526272829303132class Solution {public: vector<string> letterCombinations(string digits) { 2024-06-24 LeetCode #算法 #数据结构 #leetcode
2024.06.23 刷题日记 〇、前言今天重点刷了回溯,以及常见的题目。 46. 全排列给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2: 输入:nums = [0,1]输出:[[0,1] 2024-06-23 LeetCode #算法 #数据结构 #leetcode
2024.06.22 刷题日记 199. 二叉树的右视图这道题目的思路就是层次遍历,然后每次处理每一层所有的元素,如果是第一个就收集到答案中: 123456789101112131415161718192021222324252627class Solution {public: vector<int> rightSideView(TreeNode* root) { if 2024-06-23 LeetCode #算法 #数据结构 #leetcode