题解 | #买卖股票的最好时机(一)#

买卖股票的最好时机(一)

https://www.nowcoder.com/practice/64b4262d4e6d4f6181cd45446a5821ec

import java.util.*;


public class Solution {
    /**
     * 
     * @param prices int整型一维数组 
     * @return int整型
     */
    public int maxProfit (int[] prices) {
        // write code here
        // 这个题目,要用贪心算法来解决
        if(prices.length <= 1){
            return 0;
        }
        int profit = 0;
        // 表示买入价格,要找到最便宜的时候买入
        int minPrice = Integer.MAX_VALUE;
        for(int i = 0; i< prices.length; i++){
            // 找到最低价格
            minPrice = Math.min(minPrice,prices[i]);
            // 收益,要么是之前的,要么是现在的价格减去最低买入价格
            profit = Math.max(prices[i] - minPrice , profit);
        }
        return profit;
    }
}

minPrice是买入的最低价,一开始把它设置为最大值,然后不断缩小它。初始化profit为0,然后它等于当天价格减去最低买入价格,比较这个计算值和之前的profi,选最大的留下。这是贪心算法的典型题目。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务