LeetCode:买卖股票的最佳时机 II
输入: prices = [7,1,5,3,6,4]
输出: 7
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。
public static int maxProfit(int[] prices) {
int left=0; //左指针
int right=1; //右指针
int buy=0; //买入价
int sell=0; //卖出价
int result=0; //总价
int contion=0;//1代表已买入,0代表没有买入
while(left!=right&&right<prices.length){
//当左指针比由指针高并且已经买入了,设置卖出价
if (prices[left]>=prices[right]){
if (contion==1){
sell=prices[left];
contion=0;
}
}else{
//当左指针比由指针低,则买入
if (contion==0){
buy=prices[left];
contion=1; //设置为已经买入
}
}
//设置边界条件,当已经买入了,right的边界,则代表全程都没有卖出,边界为最大值。
if (right==prices.length-1&&contion==1){
sell=prices[right];
contion=0;
}
//设置边界条件
//当卖价不为0且,交易结束为0时
if (sell!=0&&contion==0){
result+=(sell-buy);
sell=0;
buy=0;
}
right++;
left++;
}
return result;
}
结果: