LeetCode
文章平均质量分 93
再加一份肉
这个作者很懒,什么都没留下…
展开
-
20210611 每日一题 完全平方数
题目代码方法一:一维动态规划分析代码复杂度分析拓展 题目 题目链接 代码 class Solution { public: int numSquares(int n) { } }; 方法一:一维动态规划 分析 该题目是一道典型的完全背包,设定一维数组 dp[i]dp[i]dp[i] 表示构成 iii 的完全平方数的最少数量,当 i=0i = 0i=0 时,只有一种情况,即 dp[0]=0dp[0] = 0dp[0]=0,因为本题目是找最小值,因此其余初始值为 INT_MAXINT\_M.原创 2021-07-08 20:21:07 · 253 阅读 · 0 评论 -
20210610 每日一题 零钱兑换 II
题目代码方法一:二维动态规划分析要点代码复杂度分析方法二:一维动态规划分析代码复杂度分析拓展 题目 题目链接 代码 class Solution { public: int change(int amount, vector<int>& coins) { } }; 方法一:二维动态规划 分析 设定二维数组 dp[i][j]dp[i][j]dp[i][j] 表示使用前编号 iii 的硬币中,可以得到总金额为 jjj 的组合数,二维数组 dp[0][0]=1dp[0][.原创 2021-07-08 16:22:32 · 145 阅读 · 0 评论 -
20210609 每日一题 盈利计划
题目代码方法一:三维动态规划分析代码复杂度分析方法二:二维动态规划分析要点代码复杂度分析方法三:转换动态规划分析要点代码复杂度分析拓展 题目 题目链接 代码 class Solution { public: int profitableSchemes(int G, int P, vector<int>& group, vector<int>& profit) { } }; 方法一:三维动态规划 分析 该题目是一道典型的多维背包问题,设定三维数组 .原创 2021-07-07 23:00:36 · 263 阅读 · 1 评论 -
20210608 每日一题 最后一块石头的重量 II
题目代码方法一:二维动态规划分析代码复杂度分析方法二:一维动态规划分析要点代码复杂度分析拓展 题目 题目链接 代码 class Solution { public: int lastStoneWeightII(vector<int>& stones) { } }; 方法一:二维动态规划 分析 假设数组的元素和为 sumsumsum,添加 +++ 号的元素之和为 aaa,添加 −-− 号的元素之和为 bbb,得到的表达式的结果为:a+b=suma−b=target\b.原创 2021-07-05 16:19:42 · 118 阅读 · 0 评论 -
20210607 每日一题 目标和
题目代码方法一:DFS 深度优先搜索分析代码复杂度分析方法二:记忆化搜索分析代码复杂度分析方法三:二维动态规划分析代码复杂度分析方法四:一维动态规划分析要点代码复杂度分析拓展 题目 题目链接 代码 class Solution { public: int findTargetSumWays(vector<int>& nums, int target) { } }; 方法一:DFS 深度优先搜索 分析 题目中可以选择向数组中的每个整数前添加 +++ 或 −-−,所以可.原创 2021-07-04 21:09:04 · 494 阅读 · 0 评论 -
20210606 每日一题 一和零
题目代码方法一:动态规划分析代码复杂度分析方法二:状态压缩动态规划分析要点代码复杂度分析优化代码拓展 题目 题目链接 代码 class Solution { public: int findMaxForm(vector<string>& strs, int m, int n) { } }; 方法一:动态规划 分析 题目是一个多维背包问题,把总共的 000 和 111 的个数视为背包的容量,每一个字符串视为装进背包的物品,因此需要使用三维动态规划求解,三个维度分别是字.原创 2021-07-02 23:57:01 · 326 阅读 · 0 评论 -
20210605 每日一题 移除链表元素
题目代码方法一:迭代分析代码复杂度分析方法二:递归分析代码复杂度分析拓展 题目 题目链接 代码 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * Lis.原创 2021-07-01 23:01:19 · 275 阅读 · 2 评论 -
20210604 每日一题 相交链表
20210604 每日一题 连续数组题目代码方法一:哈希表分析代码方法二:双指针分析代码要点复杂度分析拓展 题目 题目链接 代码 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: Lis原创 2021-06-23 12:30:56 · 108 阅读 · 0 评论 -
20210603 每日一题 连续数组
20210603 每日一题 连续数组题目代码方法一:前缀和+哈希表分析代码要点复杂度分析拓展 题目 题目链接 代码 class Solution { public: int findMaxLength(vector<int>& nums) { } }; 方法一:前缀和+哈希表 分析 朴素思路:当数组 numsnumsnums 的长度为 nnn 时,使用 O(n2)O(n^2)O(n2)的时间遍历遍历数组 numsnumsnums 的全部子数组,对于每个子数组需要 O(原创 2021-06-16 20:22:27 · 88 阅读 · 0 评论 -
20210601 每日一题 你能在你最喜欢的那天吃到你最喜欢的糖果吗?
20210601 每日一题题目题解前缀和拓展 题目 题目链接 题解 前缀和 拓展原创 2021-06-12 18:59:09 · 93 阅读 · 0 评论 -
20210602 每日一题 连续的子数组和
20210601 每日一题题目代码方法一:前缀和分析代码要点复杂度分析拓展 题目 题目链接 代码 class Solution { public: vector<bool> canEat(vector<int>& candiesCount, vector<vector<int>>& queries) { } }; 方法一:前缀和 分析 每天吃糖果的落在区间: [1,dailyCap][1, dailyCap][1,daily原创 2021-06-14 15:43:36 · 65 阅读 · 0 评论