0
点赞
收藏
分享

微信扫一扫

蓝桥杯-买卖股票的最佳时机-力扣

E_topia 2022-03-25 阅读 47

121. 买卖股票的最佳时机

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0

示例 1:

示例 2:

提示:

  • 1 <= prices.length <= 105
  • 0 <= prices[i] <= 104

记录题解

public class BestTimeToBuyAndSellStock{
    public static void main(String[] args) {
        Solution solution = new BestTimeToBuyAndSellStock().new Solution();
        System.out.println(solution.maxProfit(new int[]{7,6,4,3,1}));
    }

//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public int maxProfit(int[] prices) {
        int len = prices.length;
        int count = 0;
        for (int i = 0; i < len; i++) {
            for (int j = i+1; j < len && prices[j] > prices[i]; j++) {
                if (prices[j]-prices[i] > count) count = prices[j]-prices[i];
            }
        }
        return count;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}

力扣官方题解

public class Solution {
    public int maxProfit(int prices[]) {
        int minprice = Integer.MAX_VALUE;
        int maxprofit = 0;
        for (int i = 0; i < prices.length; i++) {
            if (prices[i] < minprice) {
                minprice = prices[i];
            } else if (prices[i] - minprice > maxprofit) {
                maxprofit = prices[i] - minprice;
            }
        }
        return maxprofit;
    }
}

举报

相关推荐

0 条评论