当前位置: 首页 > article >正文

Day28 贪心算法 part02

122.买卖股票的最佳时机II

本题解法很巧妙,本题大家可以先自己思考一下然后再看题解,会有惊喜!

class Solution {
    public int maxProfit(int[] prices) {
        //分析每一天的情况。只要保证今天买,明天卖可以不亏钱,那就是最大的利润。把每一天可以赚钱的机会都不放过,先把能挣到的钱放进口袋里。
        int sum = 0;
        for(int i = 0; i < prices.length - 1; i++){
            if(prices[i+1] > prices[i]){
                sum += (prices[i+1]-prices[i]);
            }
        }
        return sum;       
    }
}

总结

1.本题是贪心算法最直观的体现。我们怎么保证总的利润最大呢?分析每一天的情况。只要保证今天买,明天卖可以不亏钱,然后把每一天可以赚钱的机会都不放过,先把能挣到的钱放进口袋里,那就是最大的利润。

2.重点是分析每一天的情况,只要今天买,明天卖可以挣到钱就行。不要想着今天买,隔几天再卖,这种方法和 今天买,明天卖 最后累加的收益是一样的。

3.本题中理解利润拆分是关键点! 不要整块的去看,而是把整体利润拆为每天的利润。一旦想到这里了,很自然就会想到贪心了,即:只收集每天的正利润,最后稳稳的就是最大利润了。利润分解为每天为单位的维度,而不是从 0 天到第 3 天整体去考虑!<


http://www.kler.cn/a/413266.html

相关文章:

  • RabbitMQ7:消息转换器
  • 【算法day1】数组:双指针算法
  • 笔记mfc11
  • 【GIT】TortoiseGit的拉取(Pull) 和 获取(Fetch)
  • DataGuard 架构和概念整理
  • 排序算法之选择排序篇
  • CTF之密码学(费纳姆密码)
  • LLamafactory API部署与使用异步方式 API 调用优化大模型推理效率
  • 初识Linux(4):Linux基础环境工具(下)
  • YOLO的框架及版本迭代
  • Mac安装及合规无限使用Beyond Compare
  • Linux iptables 命令详解
  • 【设计模式】【结构型模式(Structural Patterns)】之享元模式(Flyweight Pattern)
  • 八、利用CSS制作导航栏菜单的习题
  • Easyui 实现订单拆分开票功能
  • 算法新篇章:AI如何在数学领域超越人类
  • 【CSS in Depth 2 精译_061】9.4 CSS 中的模式库 + 9.5 本章小结
  • python的openpyxl库设置表格样式:字体/边框/对齐/颜色等
  • ES6中,Set和Map的区别 ?
  • DFS练习题 ——(上)
  • CentOS8.5.2111(7)完整的Apache综合实验
  • maxun爬虫工具docker搭建
  • Java八股(一)
  • 问:Spring JavaConfig怎么用?
  • mybatis-plus 实现分页查询步骤
  • 【设计模式】创建型模式之装饰器模式(组成、步骤、优缺点、场景)