美文网首页
面试题63_股票的最大利润

面试题63_股票的最大利润

作者: shenghaishxt | 来源:发表于2020-04-09 10:00 被阅读0次

题目描述

假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?

题解一

使用暴力法的话,直接双重循环找出每一对利润的差值,比较大小即可。

    public int maxProfit(int[] prices) {
        int maxProfit = 0;
        for (int i = 0; i < prices.length; i++) {
            for (int j = i + 1; j < prices.length; j++) {
                maxProfit = Math.max(maxProfit, prices[j] - prices[i]);
            }
        }
        return maxProfit;
    }

题解二

第二种思路是扫描一遍价格数组,在扫描到数组的第i个数字时,保存之前i-1个数字中的最小值,这个最小值就是买入的最佳时间点,然后就可以算出卖出时的最大利润。

    public int maxProfit(int[] prices) {
        if (prices.length == 0) return 0;
        int maxProfit = 0, minBuy = prices[0];
        for (int i = 1; i < prices.length; i++) {
            if (prices[i] - minBuy > maxProfit)
                maxProfit = prices[i] - minBuy;
            if (prices[i] < minBuy)
                minBuy = prices[i];
        }
        return maxProfit;
    }

相关文章

  • 面试题63_股票的最大利润

    题目描述 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 题解一 使...

  • 剑指offer第二版-63.股票的最大利润

    本系列导航:剑指offer(第二版)java实现导航帖 面试题63:股票的最大利润 题目要求:求买卖股票一次能获得...

  • 面试题63:股票的最大利润

    假设某股票的价格按照时间先后顺序存储在数组中,问买卖该股票一次可能获得的最大利润是多少? 如一支股票在某段时间内的...

  • 面试题63:股票的最大利润

    题目 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?例如:一只股票在...

  • 面试题63:股票的最大利润

    题目:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1:输入...

  • 股票的最大利润

    题目链接:https://leetcode-cn.com/problems/gu-piao-de-zui-da-l...

  • 面试题63. 股票的最大利润

    股票的最大利润 题目描述 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多...

  • 面试题63. 股票的最大利润

    假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1: 示例 2...

  • 63 股票最大利润

    动态追踪当前最小值,当前最大利润和全局利润对比

  • 股票最大利润 II

    版权声明:本文为博主原创文章,转载请注明出处。个人博客地址:https://yangyuanlin.club欢迎来...

网友评论

      本文标题:面试题63_股票的最大利润

      本文链接:https://www.haomeiwen.com/subject/ofjqmhtx.html