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

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

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,选最大的留下。这是贪心算法的典型题目。

全部评论

相关推荐

小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
下个早班:秒挂就是不缺人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务