【算法刷题 | 贪心算法03】4.25(最大子数组和、买卖股票的最佳时机|| )

在这里插入图片描述

文章目录

  • 4.最大子数组和
    • 4.1题目
    • 4.2解法一:暴力
      • 4.2.1暴力思路
      • 4.2.2代码实现
    • 4.3解法二:贪心
      • 4.3.1贪心思路
      • 4.3.2代码实现
  • 5.买卖股票的最佳时机||
    • 5.1题目
    • 5.2解法:贪心
      • 5.2.1贪心思路
      • 5.2.2代码实现

4.最大子数组和

4.1题目

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组是数组中的一个连续部分。

  • 示例一:
输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。
  • 示例二:
输入:nums = [1]
输出:1

4.2解法一:暴力

4.2.1暴力思路

  • 两层for循环,第一层为起点,第二层为终点
  • 注意:该方法只能算数组任意一个元素到数组末尾的最大值,不能指派到任意一个终点

4.2.2代码实现

	public int maxSubArray(int[] nums) {
        int res=Integer.MIN_VALUE;
        for(int i=0;i<nums.length;i++){
            int sum=0;
            for(int j=i;j<nums.length;j++){
                sum+=nums[j];
            }
            res=Math.max(res,sum);
        }
        return res;
    }
  • 注意:

image-20240425192417808

4.3解法二:贪心

4.3.1贪心思路

  • 贪心贪在哪里:如果 -2 1 在一起,计算起点的时候,一定是从 1 开始计算,因为负数只会拉低总和,这就是贪心贪的地方!
  • 局部最优:当前“连续和”为负数的时候立刻放弃,从下一个元素重新计算“连续和”,因为负数加上下一个元素 “连续和”只会越来越小。
  • 全局最优:选取最大“连续和”

4.3.2代码实现

	public int maxSubArray(int[] nums) {
        int res=Integer.MIN_VALUE;  //全局最大连续和
        int count=0;                //局部最大连续和
        for(int i=0;i<nums.length;i++){
            //先加上此数
            count+=nums[i];
            if(count>res){
                //更新全局最优解
                res=count;
            }
            //若局部最大连续和为负数,则重置为0,代表从下一位开始计算
            if(count<0){
                count=0;
            }
        }
        return res;
    }

5.买卖股票的最佳时机||

5.1题目

给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。

在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。

返回 你能获得的 最大 利润

  • 示例一:
输入:prices = [7,1,5,3,6,4]
输出:7
解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。
     随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3 。
     总利润为 4 + 3 = 7 。
  • 示例二:
输入:prices = [1,2,3,4,5]
输出:4
解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。
     总利润为 4 。

5.2解法:贪心

5.2.1贪心思路

  • 平常思想:选一个低的买入,再选个高的卖,再选一个低的买入…循环反复
  • 但是最终利润是可以分解的
  • 例如:
    • 假如第 0 天买入,第 3 天卖出,那么利润为:prices[3] - prices[0]。
    • 相当于(prices[3] - prices[2]) + (prices[2] - prices[1]) + (prices[1] - prices[0])。
    • 此时就是把利润分解为每天为单位的维度,而不是从 0 天到第 3 天整体去考虑!

image-20240425194552498

最终的利润:4+5+3=12

从图中可以发现,其实我们需要收集每天的正利润就可以,收集正利润的区间,就是股票买卖的区间,而我们只需要关注最终利润,不需要记录区间

5.2.2代码实现

	public int maxProfit(int[] prices) {
        int res=0;
        //从第二天开始
        for(int i=1;i<prices.length;i++){
            //利润取正整数
            res+=Math.max(prices[i]-prices[i-1],0);
        }
        return res;
    }

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/573352.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux中DHCP原理与配置

目录 一.DHCP的原理 1.DHCP的简要概述 2.DHCP的优点 3.DHCP的分配方式 4.DHCP的租约过程 5.DHCP服务 6.可分配的地址信息主要包括 二.DHCP同一网段分配地址实验 windows命令 一.DHCP的原理 1.DHCP的简要概述 DHCP&#xff08;Dynamic Host Configuration Protocol&a…

讯鹏智慧公厕系统解决方案新升级,大不同!

在城市建设和公共服务不断发展的今天&#xff0c;公厕作为重要的基础设施&#xff0c;其质量和管理水平直接影响着人们的生活体验。然而&#xff0c;当前公厕普遍存在着一些问题&#xff0c;如卫生状况不佳、设施老化、管理不便等。为了解决这些问题&#xff0c;讯鹏智慧公厕系…

牛客NC209 最短无序连续子数组【中等 数组,双指针 C++/Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/d17f4abd1d114617b51e951027be312e 思路 解题思路 1、方法1&#xff0c;排序对比&#xff1a;将数组按升序排序&#xff0c;然后与原数组对照&#xff0c;从哪里开始变化到哪里结束变化的数组就是答案。 2、 方…

图像处理技术与应用(二)

图像处理技术与应用入门 椒盐噪声 椒盐噪声&#xff0c;也称为脉冲噪声&#xff0c;是一种常见的数字图像噪声。它通常表现为图像中随机出现的白色&#xff08;椒&#xff09;或黑色&#xff08;盐&#xff09;像素点&#xff0c;这些像素点在图像上呈现为黑白杂点。椒盐噪声…

云计算革新:以太网 Scale-UP 网络为 GPU 加速赋能

谈谈基于以太网的GPU Scale-UP网络 Intel Gaudi-3 采用 RoCE 互联技术&#xff0c;促进了 Scale-UP 解决方案。业界专家 Jim Keller 倡导以太网替代 NVLink。Tenstorrent 成功应用以太网实现片上网络互联。RoCE 和以太网已成为互联解决方案的新兴趋势&#xff0c;为高性能计算提…

前端H5动态背景登录页面(下)

最近正好有点儿时间&#xff0c;把之前没整理完的前端动态背景登录页面给整理一下&#xff01;这是之前的连接前端H5动态背景登录页面&#xff08;上&#xff09;&#xff0c;这主要是两个登陆页面&#xff0c;一个彩色气泡&#xff0c;一个动态云朵&#xff0c;感兴趣的可以点…

关爱通丨从AIGC到硅基人同事:人工智能迭代重塑HR管理策略

2024年&#xff0c;一股创新的浪潮悄无声息地席卷了全球&#xff0c;推动了人工智能领域的重大突破。Sora视频模型的惊艳发布&#xff0c;成为了这一创新浪潮的标志性事件。 Sora这个名字源自日语中的“空”&#xff08;そら sora&#xff09;&#xff0c;象征着天空的无限广阔…

机器学习作业3____决策树(CART算法)

目录 一、简介 二、具体步骤 样例&#xff1a; 三、代码 四、结果 五、问题与解决 一、简介 CART&#xff08;Classification and Regression Trees&#xff09;是一种常用的决策树算法&#xff0c;可用于分类和回归任务。这个算法由Breiman等人于1984年提出&#xff0c;它…

sorensen索伦森电源维修XRF系列程控电源XRF600-4

AMETEK直流电源产品有两种类型&#xff1a;固定量程类型和自动量程类型。 固定量程电源是经济型的&#xff0c;输出范围为传统的矩形范围。 自动量程电源&#xff0c;在满输出功率的基础上&#xff0c;扩展了电流和电压的输出范围&#xff0c;使其能够满足更广泛的测试需求&am…

自由场、半自由场、扩散场

按声场性质可以将声场分为三类&#xff1a;自由声场、半自由声场、扩散声场 分别对应着全消声室&#xff0c;半消声室&#xff0c;混响室 自由声场&#xff1a; 声源在均匀、各向同性媒介中传播时&#xff0c;不计边界影响的声场&#xff0c;此时声场中只有直达声没有反射声。…

数据库系统原理实验报告4 | 数据完整性

整理自博主本科《数据库系统原理》专业课自己完成的实验报告&#xff0c;以便各位学习数据库系统概论的小伙伴们参考、学习。 专业课本&#xff1a; ———— 本次实验使用到的图形化工具&#xff1a;Heidisql 目录 一、实验目的 二、实验内容 1、建表 2、对1题中创建的Stud…

MySQL--mysql的安装(压缩包安装保姆级教程)

官网下载&#xff1a;www.mysql.com MySQL :: Download MySQL Community Server (Archived Versions) 1.MySQL下载流程&#xff1a; 第一步&#xff1a;点击download&#xff0c; 下滑找到MySQL community&#xff08;gpl&#xff09;Downloads>> 第二步&#xff1a;点…

问题-MySQL将较大的SQL文件导入MySQL

迁移数据的时候&#xff0c;我们有时候会用sqlyog等数据库工具导入到新数据库。可能插入的SQL语句太大&#xff0c;出现导入一半失败的情况。明明代码没错&#xff0c;这让人摸不着头脑。 对于大文件导入&#xff0c;有几种方法&#xff1a; 方法1&#xff1a;使用命令行&…

这几种MBTI,活该做项目经理!

最近公司群里发了一个性格测试&#xff08;MBTI&#xff09;&#xff0c;让根据大家测出来的性格&#xff0c;适当挖掘一下自身潜力。 当对照性格解析时&#xff0c;才发现公司里真是卧虎藏龙&#xff0c;而且每个人测出来的性格和平时表现出的自己都非常贴合。 MBTI性格测试…

2024年Q1企业邮箱安全性研究报告:钓鱼邮件同比增长59.9%

4月23日&#xff0c;Coremail邮件安全联合北京中睿天下信息技术有限公司发布《2024年第一季度企业邮箱安全性研究报告》。对当前企业邮箱的应用状况和安全风险进行了分析。 1、垃圾邮件持续增长 根据Coremail邮件安全人工智能实验室最新数据显示&#xff0c;2024年第一季度&am…

Postman - 设置变量

场景&#xff1a; 比如你接口都有权限&#xff0c;访问需要每调一个接口都手动放token的值&#xff0c;这个时候就可以搞个全局的变量&#xff0c;只设置一次就可以了 1、设置变量 Environments -> Globals - > 设置key 、value 2、使用变量 {{你得变量名-key}} 3…

电动车DC-DC80V降33V/12V 3A大功率同步降压芯片_AH1008

AH1008是一款专为电动车设计的同步降压芯片&#xff0c;TEL&#xff1a;186*4884*3702*能够将输入电压从80V稳定地降至33V或12V&#xff0c;并提供最大3A的输出电流。该芯片采用了先进的同步降压转换技术&#xff0c;有效降低了能量损耗&#xff0c;提升了转换效率&#xff0c;…

做抖音小店,“自然流量”和“达人带货”,选择哪个更香?

大家好&#xff0c;我是电商笨笨熊 做抖音小店&#xff0c;关于选择自然流还是达人带货&#xff0c;从推出时就一直争吵到现在&#xff1b; 有人觉得自然流不需要佣金&#xff0c;一次性带来的爆单量很大&#xff1b; 有人觉得达人带货细水长流&#xff0c;虽然需要佣金&…

【大语言模型LLM】-基础语言模型和指令微调的语言模型

&#x1f525;博客主页&#xff1a;西瓜WiFi &#x1f3a5;系列专栏&#xff1a;《大语言模型》 很多非常有趣的模型&#xff0c;值得收藏&#xff0c;满足大家的收集癖&#xff01; 如果觉得有用&#xff0c;请三连&#x1f44d;⭐❤️&#xff0c;谢谢&#xff01; 长期不…

干货教程【AI篇】| 真人照片转动漫AI工具分享

今天给大家分享一个真人照片转动漫的工具。用真是拍摄的照片生成动漫/漫画/手绘/卡通图的工具。 需要这个工具的同学可以关注【文章底部公众号】&#xff0c;回复关键词【zpdm】即可获取本文所讲工具。 首先我们将下载下来的压缩包解压 直接双击红框内的文件就可以运行了。启…
最新文章