mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
添加 0122.买股票的最佳时机II.md C语言动态规划解法
This commit is contained in:
@ -269,7 +269,7 @@ const maxProfit = (prices) => {
|
||||
```
|
||||
|
||||
C:
|
||||
|
||||
贪心:
|
||||
```c
|
||||
int maxProfit(int* prices, int pricesSize){
|
||||
int result = 0;
|
||||
@ -284,5 +284,27 @@ int maxProfit(int* prices, int pricesSize){
|
||||
}
|
||||
```
|
||||
|
||||
动态规划:
|
||||
```c
|
||||
#define max(a, b) (((a) > (b)) ? (a) : (b))
|
||||
|
||||
int maxProfit(int* prices, int pricesSize){
|
||||
int dp[pricesSize][2];
|
||||
dp[0][0] = 0 - prices[0];
|
||||
dp[0][1] = 0;
|
||||
|
||||
int i;
|
||||
for(i = 1; i < pricesSize; ++i) {
|
||||
// dp[i][0]为i-1天持股的钱数/在第i天用i-1天的钱买入的最大值。
|
||||
// 若i-1天持股,且第i天买入股票比i-1天持股时更亏,说明应在i-1天时持股
|
||||
dp[i][0] = max(dp[i-1][0], dp[i-1][1] - prices[i]);
|
||||
//dp[i][1]为i-1天不持股钱数/在第i天卖出所持股票dp[i-1][0] + prices[i]的最大值
|
||||
dp[i][1] = max(dp[i-1][1], dp[i-1][0] + prices[i]);
|
||||
}
|
||||
// 返回在最后一天不持股时的钱数(将股票卖出后钱最大化)
|
||||
return dp[pricesSize - 1][1];
|
||||
}
|
||||
```
|
||||
|
||||
-----------------------
|
||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||
|
Reference in New Issue
Block a user