1. 关于动规-股票状态
分成两种状态:dp[0]持有,dp[1]不持有
没懂。。。
还在用贪心
2. 例题
lc买卖股票的最佳时机 I
思路
还是贪心的思路,待解决动规
dp[i] 在第i天卖出时的最大利润
在不在这天卖?
- 不卖:还是i-1时存储的最大利润dp[i-1]
- 卖:nums[i]-nums[buyIn]
待解决
动规的思路?
代码实现
/***/
class Solution {
public int maxProfit(int[] prices) {
int amount=0;
if(prices.length==1 || prices.length==0){
return 0;
}
for(int i=1;i<prices.length;i++){
if(prices[i]>prices[i-1]){
amount+=prices[i]-prices[i-1];
}
}
return amount;
}
}
**
lc买卖股票的最佳时机 II
思路
还是贪心的思路,待解决动规
每天两种状态:操作卖出,或不操作,然后累加amount
这样不用考虑最高点-最低点在哪里,也不用分情况成最后一个、第一个、中间段
待解决
动规的思路?
如果限制交易的次数?
代码实现
/***/
class Solution {
public int maxProfit(int[] prices) {
int amount=0;
if(prices.length==1 || prices.length==0){
return 0;
}
for(int i=1;i<prices.length;i++){
if(prices[i]>prices[i-1]){
amount+=prices[i]-prices[i-1];
}
}
return amount;
}
}