mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 19:44:45 +08:00
添加 0122.买股票的最佳时机II.md C语言动态规划解法
This commit is contained in:
@ -269,7 +269,7 @@ const maxProfit = (prices) => {
|
|||||||
```
|
```
|
||||||
|
|
||||||
C:
|
C:
|
||||||
|
贪心:
|
||||||
```c
|
```c
|
||||||
int maxProfit(int* prices, int pricesSize){
|
int maxProfit(int* prices, int pricesSize){
|
||||||
int result = 0;
|
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>
|
<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