代码随想录-算法训练营day48(动态规划10:买卖股票的最佳时机,买卖股票的最佳时机2)

发布于:2024-12-18 ⋅ 阅读:(319) ⋅ 点赞:(0)
第九章 动态规划part10
 
● 121. 买卖股票的最佳时机 
● 122.买卖股票的最佳时机II 
 
 详细布置 
 
股票问题是一个动态规划的系列问题,今日安排的题目不多,大家可以慢慢消化。
 
 121. 买卖股票的最佳时机 
视频讲解:https://www.bilibili.com/video/BV1Xe4y1u77q
https://programmercarl.com/0121.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BA.html
 
 122.买卖股票的最佳时机II  
视频讲解:https://www.bilibili.com/video/BV1D24y1Q7Ls
https://programmercarl.com/0122.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAII%EF%BC%88%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%EF%BC%89.html  
 
往日任务
● day 1 任务以及具体安排:https://docs.qq.com/doc/DUG9UR2ZUc3BjRUdY  
● day 2 任务以及具体安排:https://docs.qq.com/doc/DUGRwWXNOVEpyaVpG  
● day 3 任务以及具体安排:https://docs.qq.com/doc/DUGdqYWNYeGhlaVR6 
● day 4 任务以及具体安排:https://docs.qq.com/doc/DUFNjYUxYRHRVWklp 
● day 5 周日休息
● day 6 任务以及具体安排:https://docs.qq.com/doc/DUEtFSGdreWRuR2p4 
● day 7 任务以及具体安排:https://docs.qq.com/doc/DUElCb1NyTVpXa0Jj 
● day 8 任务以及具体安排:https://docs.qq.com/doc/DUGdsY2JFaFhDRVZH 
● day 9 任务以及具体安排:https://docs.qq.com/doc/DUHVXSnZNaXpVUHN4 
● day 10 任务以及具体安排:https://docs.qq.com/doc/DUElqeHh3cndDbW1Q 
●day 11 任务以及具体安排:https://docs.qq.com/doc/DUHh6UE5hUUZOZUd0 
●day 12 周日休息 
●day 13 任务以及具体安排:https://docs.qq.com/doc/DUHNpa3F4b2dMUWJ3 
●day 14 任务以及具体安排:https://docs.qq.com/doc/DUHRtdXZZSWFkeGdE 
●day 15 任务以及具体安排:https://docs.qq.com/doc/DUHN0ZVJuRmVYeWNv 
●day 16 任务以及具体安排:https://docs.qq.com/doc/DUHBQRm1aSWR4T2NK 
●day 17 任务以及具体安排:https://docs.qq.com/doc/DUFpXY3hBZkpabWFY 
●day 18 任务以及具体安排:https://docs.qq.com/doc/DUFFiVHl3YVlReVlr 
●day 19 周日休息
●day 20 任务以及具体安排:https://docs.qq.com/doc/DUGFRU2V6Z1F4alBH  
●day 21 任务以及具体安排:https://docs.qq.com/doc/DUHl2SGNvZmxqZm1X 
●day 22 任务以及具体安排:https://docs.qq.com/doc/DUHplVUp5YnN1bnBL  
●day 23 任务以及具体安排:https://docs.qq.com/doc/DUFBUQmxpQU1pa29C 
●day 24 任务以及具体安排:https://docs.qq.com/doc/DUEhsb0pUUm1WT2NP  
●day 25 任务以及具体安排:https://docs.qq.com/doc/DUExTYXVzU1BiU2Zl 
●day 26 休息 
●day 27 任务以及具体安排:https://docs.qq.com/doc/DUElpbnNUR3hIbXlY 
●day 28 任务以及具体安排:https://docs.qq.com/doc/DUG1yVHdlWEdNYlhZ  
●day 29 任务以及具体安排:https://docs.qq.com/doc/DUHZYbWhwSHRCRmp3 
●day 30 任务以及具体安排:https://docs.qq.com/doc/DUEdTVVhxbnJiY3BR 
●day 31 任务以及具体安排:https://docs.qq.com/doc/DUG1PQ1ZZY2xXY1ly 
●day 32 任务以及具体安排:https://docs.qq.com/doc/DUGFEdGFWeVhleFF1 
●day 33 周日休息 
●day 34 任务以及具体安排:https://docs.qq.com/doc/DUEh5WFVlQkp1U0p4  
●day 35 任务以及具体安排:https://docs.qq.com/doc/DUFRWc3BGRHFXZ1pO  
●day 36 任务以及具体安排:https://docs.qq.com/doc/DUERGbnhhRkFRVENZ 
●day 37 任务以及具体安排:https://docs.qq.com/doc/DUFVRd3p5SHFMSExQ  
●day 38 任务以及具体安排:https://docs.qq.com/doc/DUGNUdVpoT0VJR01l 
●day 39 任务以及具体安排:https://docs.qq.com/doc/DUE55cVJ5WkNoREhS 
●day 40 周日休息
●day 41 任务以及具体安排:https://docs.qq.com/doc/DUFhIUXRFYnVGUkFp 
●day 42 任务以及具体安排:42 第八章 动态规划 
●day 43 任务以及具体安排:43 第八章 动态规划 
●day 44 任务以及具体安排:44 第八章 动态规划 
●day 45 任务以及具体安排:45  第八章 动态规划 
●day 46 任务以及具体安排:46 第八章 动态规划 
●day 47 周日休息
●day 48 任务以及具体安排:48 第八章 动态规划

day48

买卖股票的最佳时机

 class Solution {
     public int maxProfit(int[] prices) {
         //dp[i][0] = Math.max(dp[i - 1][0], -prices[i])//持有股票,要么持有以前的股票,要么持有今天的股票
         //dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][0] + prices[i])//不持有股票,要么以前就不持有,要么今天不持有
         int len = prices.length;
         int[][] dp = new int[len][2];
         dp[0][0] = -prices[0];
         dp[0][1] = 0;
         for(int i = 1; i < len; i++){
             dp[i][0] = Math.max(dp[i - 1][0], -prices[i]);
             dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][0] + prices[i]);
         }
         return dp[len - 1][1];
     }
 }

买卖股票的最佳时机2

 class Solution {
     public int maxProfit(int[] prices) {
         //dp[i][0] = Math.max(dp[i - 1][0], dp[i - 1][1] - prices[i])//持有股票,要么持有以前的股票,要么持有今天的股票,唯一区别是允许多次买卖所以价格是dp[i - 1][1] - prices[i]
         //dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][0] + prices[i])//不持有股票,要么以前就不持有,要么今天不持有
         int len = prices.length;
         int[][] dp = new int[len][2];
         dp[0][0] = -prices[0];
         dp[0][1] = 0;
         for(int i = 1; i < len; i++){
             dp[i][0] = Math.max(dp[i - 1][0],dp[i - 1][1] -prices[i]);
             dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][0] + prices[i]);
         }
         return dp[len - 1][1];
     }
 }

感谢大佬分享:
​​​​​​​代码随想录-算法训练营day48【动态规划10:买卖股票的最佳时机、买卖股票的最佳时机II】-CSDN博客


网站公告

今日签到

点亮在社区的每一天
去签到