峰谷法(我用的贪心但是发现实现是一样的)
class Solution {
public int maxProfit(int[] prices) {
//贪心,交易次数最少,如果题目限制交易次数,用他
int i=0;
int j=0;
int sum=0;
for(int k=0;k<prices.length-1;k++){
while(k<prices.length-1&&prices[k]>prices[k+1]){
k++;
}
i=k;
while(k<prices.length-1&&prices[k]<=prices[k+1]){
k++;
}
j=k;
sum=sum+(prices[j]-prices[i]);
}
return sum;
}
}
方法2:我确实没想到,leetcode大神以此嘲讽此题,哎
class Solution {
public int maxProfit(int[] prices) {
//峰谷
int sum=0;
for(int i=0;i<prices.length-1;i++){
if((prices[i+1]-prices[i])>0) sum=prices[i+1]-prices[i]+sum;
}
return sum;
}
}