leetcode 刷题 log day 49
创始人
2024-04-14 15:48:45
0
  • 121. 买卖股票的最佳时机
    思路】每天只有两种状态:持有股票或者不持有股票,持有股票时又分为前一天不持有买入股票和前一天持有股票保持两种情况。不持有股票也分为前一天持有股票卖出和前一天不持有股票保持两种情况。分别选取每种状态的两种情况的最大值。

    var maxProfit = function(prices) {let dp = new Array(prices.length).fill([0, 0]);dp[0] = [-prices[0], 0];for (let i = 1; i < prices.length; i++) {dp[i] = [Math.max(dp[i - 1][0], -prices[i]),  // 持有股票:昨天不持有或今天买入(因为只能买入一次,所以为 -prices[i])Math.max(dp[i - 1][1], dp[i - 1][0] + prices[i])  // 不持有股票:昨天不持有或今天卖出]}return dp[prices.length - 1][1];  // 最终手里不持有股票才能收益最大化
    };
    
  • 122. 买卖股票的最佳时机II
    思路】这道题比上一道多了条件可以多次买入,所以递推公式有区别,其余一样。

    // 贪心
    var maxProfit = function(prices) {// 价格递增的话就每天买入买出let res = 0;for (let i = 1; i < prices.length; i++) {if (prices[i] - prices[i - 1] > 0) res += prices[i] - prices[i - 1];}return res;
    };// 动规
    var maxProfit = function(prices) {let dp = new Array(prices).fill([0, 0]);dp[0] = [-prices[0], 0];for (let i = 1; i < prices.length; i++) {dp[i] = [Math.max(dp[i - 1][1] - prices[i], dp[i - 1][0]),  // 第 i 天持有:前一天不持有且 i 天买入股份或前一天不持有(因为可以多次买入,所以买入股票时等于前一天不持有股票的收益减去股票价格)Math.max(dp[i - 1][0] + prices[i], dp[i - 1][1])  // 第 i 天不持有:前一天持有且 i 天卖出或前一天不持有]}return dp[prices.length - 1][1];  // 最终手里不持有股票才能收益最大化
    }
    

参考代码随想录:https://www.programmercarl.com/

相关内容

热门资讯

钧崴电子(301458.SZ)... 格隆汇7月7日丨钧崴电子(301458.SZ)公布关于首次公开发行网下限售股解禁上市流通的提示性公告...
侵华日军华南细菌战“波第860... 转自:中国妇女网广东省档案馆7月7日举行“抗战档案史料捐赠仪式”,接受日本学者松野诚也捐赠的侵华日军...
一方有难 八方支援——贵州省台... 转自:中国台湾网  中国台湾网7月7日讯 近日,受持续强降雨影响,贵州省榕江县遭遇特大洪涝灾害。洪水...
七七事变88周年,6起侮辱英烈... 转自:北京日报客户端88年前的7月7日,七七事变爆发,揭开了全民族抗战的序幕。无数英雄先烈抛头颅、洒...
上海洗霸拟参与竞拍有研稀土硫化... 上海洗霸(603200)发布公告,公司计划在董事会决策范围内参与竞拍有研稀土新材料股份有限公司公开挂...
“内部知情人”举报食品安全风险... 转自:北京日报客户端“内部知情人”举报食品安全风险隐患,依据隐患大小将可获得不同程度奖励。近日,国务...
超捷股份投资者关系活动介绍多项... 超捷股份(301005)发布公告,公司于2025年7月7日下午举行了投资者关系活动,主要介绍了其汽车...
对谈清华大学刘嘉:AGI是人类...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! 经济观察报 记者 周...
中国出手反制欧盟采购限制,谁更...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会!   中国这次出台的反...
兴业科技:公司已完成工商变更登... 7月7日,兴业科技(002674)公告称,近日,公司已完成工商变更登记手续,并取得了由福建省市场监督...