zoukankan      html  css  js  c++  java
  • 力扣----12. 买卖股票的最佳时机(JavaScript实现)

    题目描述:

    给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

    如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。

    注意:你不能在买入股票前卖出股票。

    示例 1:

    输入: [7,1,5,3,6,4]
    输出: 5
    解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
    注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。


    示例 2:

    输入: [7,6,4,3,1]
    输出: 0

    时间复杂度:O(n)

    空间复杂度:O(1)

    /**
     * @param {number[]} prices
     * @return {number}
     */
    var maxProfit = function(prices) {
        if(!prices) return 0;
        let temp = prices[0];
        let sub = 0;
        for (let i=1; i<prices.length; i++){
            if(prices[i] < temp) {
                temp = prices[i];
            }else if(prices[i] - temp > sub){
                sub = prices[i] - temp;
            }
        }
        return sub
    };
  • 相关阅读:
    1351. 统计有序矩阵中的负数
    剑指 Offer 56
    39. 组合总和
    1619. 删除某些元素后的数组均值
    1380. 矩阵中的幸运数
    216. 组合总和 III
    面试题 08.03. 魔术索引
    1518. 换酒问题
    Xcode多进程调试:WKWebView
    Xcode编译WebKit
  • 原文地址:https://www.cnblogs.com/manru75/p/13110949.html
Copyright © 2011-2022 走看看