剑指 Offer 63. 股票的最大利润

剑指 Offer 63. 股票的最大利润

链接

剑指 Offer 63. 股票的最大利润

代码

暴力破解法

除了慢一点也没啥
剑指 Offer 63. 股票的最大利润

剑指 Offer 63. 股票的最大利润

//双循环暴力法
    public int maxProfit(int[] prices)
    {
        int ret = 0;
        for (int i = 0; i < prices.length - 1; i++)
        {
            for (int j = i + 1; j < prices.length - 1; j++)
            {
                if (ret < prices[j] - prices[i])
                {
                    ret = prices[j] - prices[i];
                }
            }
        }
        return ret;
    }

寻找最低点

遍历一遍找到股票价格最低的一天,将数据保存下来,然后在遍历过程中考虑如果我是在历史最低点买进的,那么我今天卖出能赚多少钱?当遍历完成,我们就得到了最大利润。
剑指 Offer 63. 股票的最大利润

剑指 Offer 63. 股票的最大利润

public int maxProfit(int[] prices)
    {
        int Min = Integer.MAX_VALUE;
        int ret = 0;
        //确定最小值
        for (int price : prices)
        {
            if (Min > price)
            {
                Min = price;
            } else  //Min 必然小于等于 当前价格
            {
                if (ret < price - Min)
                {
                    ret = price - Min;
                }
            }
        }
        return ret;
    }
上一篇:Spring学习(十)--Spring的AOP


下一篇:63.异常的处理方式之一:捕获异常