今日收获:买卖股票的最佳时机II,跳跃游戏,跳跃游戏Ⅱ,K次取反后最大化的数组和 1. 买卖股票的最佳时机II 题目链接:122. 买卖股票的最佳时机 II - 力扣(LeetCode) 思路:收集每天的正利润(局部最优),如果这天亏了就不收集。重点是有一个思路上的转变,将最低买入和最高卖出,转化为收集每一天的利润。 方法: class Solution {public int maxP
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