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;
    }
}


posted @ 2021-12-03 20:36  Nevesettle  阅读(90)  评论(0编辑  收藏  举报