假设你有一个数组,里面存放的第i个元素表示第i天的股票的价格,如果你最多只允许进行一次交易(买进和卖出股票视为一次交易)
请设计一个算法得到最大利润。
解题思路:
在满足i<j的情况下,找出一个最低值prices[i]跟最高值prices[j]
跟求最大连续和一样
public class Solution {
public int maxProfit(int[] prices) {
int len = prices.length;
if(len==0||len==1)return 0;
int res = 0,sum=0;
int tmp = 0;
for(int i=0;i<len;i++){
if((prices[i]-prices[tmp])<0){
tmp=i;continue;
}
if(prices[i]-prices[tmp]>0){
sum=prices[i]-prices[tmp];
if(res<sum){
res=sum;
}
}
}
return res;
}
}