62.不同路径 class Solution {public int uniquePaths(int m, int n) {int[][] dp = new int[m][n];for(int i =0;i<m;i++) dp[i][0] = 1;for(int j =0;j<n;j++) dp[0][j] = 1;for(int i =1;i<m;i++){for(int j = 1;
122.买卖股票的最佳时机II 本题解法很巧妙,大家可以看题思考一下,在看题解。 题目讲解 | 题目链接 class Solution {public:int maxProfit(vector<int>& prices) {int result = 0;for (int i = 1; i < prices.size(); i++) {// 直接看两天之间的差值,将所有为正的加和int p
216.组合总和III 题目链接/文章讲解 | 视频讲解 class Solution {public:vector<vector<int>> result;vector<int> path;int sum;void backtracking(int n, int k, int startindex) {// int sum = accumulate(path.begin(), path
62.不同路径 class Solution: def uniquePaths(self, m: int, n: int) -> int: dp = [[1] * n for _ in range(m)] #如何构建一个矩阵 for i in range(1, m): for j in range(1, n):
122. 买卖股票的最佳时机II 这题应该是dp的主菜,II的要求是可以无限次买无限次卖,可以用贪心做,想了下没想到思路,直接看题解。 贪心策略: 一直统计每次的差值,只要为负,不卖出,选择正才卖出。 局部最优:统计每天的利润,遇到正数收集起来;全局最优:局部最优加起来。 class Solution {public int maxProfit(int[] prices) {int re