leetcode-买卖股票的最佳时机
基本思路
暴力解法,两次循环寻找最佳时机,但是会超时
网上解法
在历史最低价格时买入,之后再在每一天查看卖出是否是最高价,遍历一次即可。
1.判断当天是否是历史最低价
2.如果当天是历史最低价,则将此时的价格设置为买入价格,并赋值给最低价
3.如果当天不是最低价,那么将当天的价格和最低价格相减,如果利润大于之前的最大利润,则赋值给利润
class Solution {
public int maxProfit(int[] prices) {
int minPrice = Integer.MAX_VALUE;
int sum = 0;
for(int i = 0;i<prices.length;i++){
if(prices[i] < minPrice){
minPrice = prices[i];
}else{
sum = Math.max(sum,prices[i]-minPrice);
}
}
return sum;
}
}