public class Solution {
public static void main(String[] args) {
int[] demo = {1,2,4};
System.out.println(maxProfit(demo));
}
public static int maxProfit(int[] prices) {
return maxtemp(prices,0,0);
}
static int maxtemp(int[]prices,int start,int max) {
if(prices.length < 2){
return 0;
}
if(start>prices.length-2){
return 0;
}
int mintemp = start;
for(int i = start;i<prices.length;i++) {
if(prices[i]>prices[start]){
break;
}
if(i == prices.length-1&&prices[i]<prices[start]){
return 0;
}
if(i == prices.length-1){
break;
}
if(prices[i]<prices[start]&&prices[i]<prices[i+1]) {
mintemp = i;
break;
}
}
int maxtemp = mintemp+1;
for(int i = maxtemp;i<prices.length;i++) {
if(i == prices.length-1){
if(prices[i]>prices[maxtemp]) {
maxtemp = i;
break;
}
break;
}
if(prices[i]<prices[maxtemp]) {
break;
}
if(prices[i]>prices[maxtemp]&&prices[i]>prices[i+1]) {
maxtemp = i;
break;
}
}
return max += prices[maxtemp]-prices[mintemp]+maxtemp(prices,maxtemp+1,max);
}
}
近期评论