day-31 代码随想录算法训练营(19)贪心part01

news2025/1/18 17:05:26

455.分发饼干

思路一:贪心思路,大饼干先分给大胃口
思路二:小饼干先分给小胃口

376.摆动序列

分析摆动:记 presub 为前面与当前数之差,lastsub 为当前与后面数之差

 思路:
  •  1.正常摆动时,需要 presub 和 lastsub 同为异号
  • 2.出现平路,需要 presub 为0且lastsub不为0时才出现摆动
  • 3.单调坡上出现平路时,注意presub的变化,只有当峰值出现presub才改变;如图中所示,不出现峰值时presub不改变,所以平坡的末端处,presub和lastsub是同号的,不会引起计数变化
class Solution {
public:
    int wiggleMaxLength(vector<int>& nums) {
        //思路一:直接计算峰顶和峰底的个数
        if(nums.size()<=1) return nums.size();
        int curDiff=0;//当前数和后一个数的差值
        int preDiff=0;//前一个数和当前数的差值(初始化为0方便第一个元素计算)
        int sum=1;
        for(int i=0;i<nums.size()-1;i++){
            curDiff=nums[i+1]-nums[i];
            //出现峰值的情况
            if((preDiff<=0 && curDiff>0) || (preDiff>=0 && curDiff<0)){
                sum++;
                preDiff=curDiff;//峰值出现后更新prediff
            }
        }
        return sum;
    }
};

 53.最大子序和

思路:直接遍历计算数组和,
  • 当数组和大于最大子序和时,更新最大子序和;
  • 当数组和小于等于0时,直接把数组和记录为0,原地开启下一次求和

注意:存在负数,所以最大子序和的初始值为INT_MIN;(头文件为 #include<limits.h>)

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int n=nums.size();
        int maxsum=INT_MIN,sum=0;
        for(int i=0;i<n;i++){
            sum+=nums[i];
            if(sum>maxsum)
                maxsum=max(maxsum,sum);//更新子序和
            if(sum<=0)//重新开始求和
                sum=0;
            
        }
        return maxsum;
    }
};

45.跳跃游戏||

思路:求最少跳跃次数,即需要求最大覆盖范围,并且在覆盖范围内再求最大覆盖范围
1.记录最大覆盖范围
2.在最大覆盖范围内更新最大覆盖范围
3.当走到上一次最大覆盖范围的末尾,判断是否到达了终点;
  • 如果没到,则还进行跳跃计数
  • 把当前的最大覆盖范围更新
  • 判断当前最大覆盖范围是否能到达终点,如果能到达直接跳出(因为这一次跳跃已经计数)

 

class Solution {
public:
    int jump(vector<int>& nums) {
        //思路:在覆盖中寻找跳的最远的
        if(nums.size()==1) return 0;
        int count=0;
        int cur=0,next=0;
        for(int i=0;i<nums.size();i++){
            next=max(next,nums[i]+i);
            if(i==cur){//上一次最大覆盖范围走到末尾
                if(cur!=nums.size()-1){//上一次覆盖范围没有到达终点
                    count++;//进行下一步跳跃计数
                    cur=next;//更新最大覆盖范围
                    if(cur>=nums.size()-1) break;//如果最大覆盖范围大于终点
                }
            }
        }
        return count;
    }
};

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Talk | 上海交通大学官同坤:识别任意文本,隐式注意力与字符间蒸馏在文本识别中的应用

本期为TechBeat人工智能社区第525期线上Talk&#xff01; 北京时间8月23日(周三)20:00&#xff0c;上海交通大学博士生—官同坤的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “隐式注意力与字符间蒸馏在文本识别中的应用”&#xff0c;分享了识别…

基于Jenkins+Git+Ansible 发布PHP 项目-------从小白到大神之路之学习运维第88天

第四阶段提升 时 间&#xff1a;2023年8月25日 参加人&#xff1a;全班人员 内 容&#xff1a; 基于JenkinsGitAnsible 发布PHP 项目 目录 基于JenkinsGitAnsible 发布PHP 项目 一、部署PHP 运行环境 二、主机环境配置 三、Tomcat主机操作&#xff1a; 四、Jenkins主…

【PHP】echo 输出数组报Array to string conversion解决办法

代码&#xff1a; <?PHP echo "Hello World!";$demoName array("kexuexiong","xiong");echo "<pre>";var_dump($demoName);echo $demoName; print_r($demoName);echo "</pre>"; ?>输出结果&#xff1…

【点云分割】points3d框架学习01 —— 安装和配置

安装 $ pip install torch1.12.1cu113 torchvision0.13.1cu113 torchaudio0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113 $ pip install torch-points3d $ pip install ipython $ pip install trame $ pip install h5py $ pip install gdown案例 from to…

自动化测试 —— Pytest fixture及conftest详解

前言 fixture是在测试函数运行前后&#xff0c;由pytest执行的外壳函数。fixture中的代码可以定制&#xff0c;满足多变的测试需求&#xff0c;包括定义传入测试中的数据集、配置测试前系统的初始状态、为批量测试提供数据源等等。fixture是pytest的精髓所在&#xff0c;类似u…

AD(第三部分---PCB封装库的创建方法及现有封装调用)

封装库可以理解成实物图 PCB封装是我们电子设计图和实物图之间的映射体&#xff0c;具有精准数据的要求。 16.常见CHIP封装的创建(电阻 容SOT二极管) 下文做的是1N589W二极管的封装库 首先要找到产品规格书&#xff0c;重要部分(三视图尺寸&#xff0c;分别是顶视图&#xf…

php插件Workerman聊天室示例

chat.php内容如下 <?php//使用workerman&#xff0c;只需引入这个文件require_once "workerman-4.0/Autoloader.php";//创建服务器&#xff0c;监听3000端口$wsServernew \Workerman\Worker("websocket://127.0.0.1:3000");$wsServer->onConnectfu…

Android Studio开发之路 (五)导入OpenCV以及报错解决

一、步骤 官网下载opencv包&#xff08;我下的是4.7.0&#xff09;并解压&#xff0c;openvc官网 先创建一个空项目&#xff0c;简单跑一下能正常输出helloworld 点击file->new->Import Module选择解压之后的opencv-android-sdk文件夹中的SDk文件夹&#xff0c; modu…

城市管理革命,AI药方解决城市病烦恼!

引言&#xff1a;现代中文语境的“城市”是中国近代逐渐与世界接轨的舶来词语&#xff0c;根据“city”翻译而来&#xff0c;由“城”与“市”组合而成&#xff0c;其中“城”是由军事防御产生的&#xff0c;属于行政地域概念&#xff0c;“市”是由商品交换&#xff08;市场&a…

[系统] 电脑突然变卡 / 电脑突然** / 各种突发情况解决思路

今天来公司办公&#xff0c;开机之后发现电脑出现各种问题&#xff0c;死机、卡顿、点什么都加载&#xff0c;甚至开一个文件夹要1分钟才能打开&#xff0c;花了2个小时才解决&#xff0c;走了很多弯路&#xff0c;其实早点想通&#xff0c;5分钟就能解决问题&#xff0c;所以打…

无人机甚高频无线电中继通讯U-ATC118

简介 甚高频无线电中继通讯系统使用经过适航认证的机载电台连接数字网络传输模块&#xff0c;通过网络远程控制无缝实现无人机操作员与塔台直接语音通话。无人机操作员可以从地面控制站远程操作机载电台进行频率切换、静噪开关、PTT按钮&#xff0c;电台虚拟面板与真实面板布局…

肺功能指标 fev1 frc 肺指标 呼吸参数 fev1 pre-bd

肺功能报告不会看&#xff1f;手把手教你识别各种参数&#xff01; - 丁香园 (dxy.cn) pred是predict的缩写&#xff0c;中文的解释意思为预计&#xff0c;fev1&#xff05;pred是患者做肺功能检查时体现出来。患者行肺功能检查时做最大吸气至肺总量后&#xff0c;开始做用力呼…

C++学习|CUDA编程入门

CUDA编程入门 GPU介绍CUDA 介绍NVCC——CUDA编译器cu/cuh文件——CUDA文件核函数——操作GPU线程模型——CUDA逻辑结构CUDA程序运行流程CUDA内存管理 GPU介绍 GPU&#xff08;Graphics Processing Unit&#xff0c;图形处理器&#xff0c;显卡&#xff09;&#xff1a;最早主要…

第三方电容笔支持随手写吗?开学季平价好用电容笔

作为一个苹果的忠实粉丝&#xff0c;我知道很多关于数码产品的事情。而电容笔&#xff0c;也是iPad平板的一个重要配件之一&#xff0c;许多人购买iPad后&#xff0c;都希望拥有一支好用的电容笔&#xff0c;但又不知道如何选择。本人用过30余款电容笔&#xff0c;为方便各位朋…

C++信息学奥赛1142:单词的长度

#include <iostream> #include <string> using namespace std; int main() {string str1;// 输入一行字符串getline(cin,str1);int n0;for(int i0;i<str1.length();i){if(str1[i] ){while (str1[i1] ){i; // 跳过连续的空格}cout<<n<<","…

js传参没有反应

js反应如果传的参是字符串, 则不能直接传, 需要加上双引号 下面这种是传数值的形式:

【java】【idea2023版】Springboot模块没有.iml文件的问题

目录 方法一&#xff1a; 1、首先鼠标选中对应的对应的模块 &#xff0c;按两下Ctrl键 2、project中选择对应的模块 3、运行mvn idea:module 命令​编辑 方法二&#xff1a; 1、可以右键点击open Terminal 2、然后在打开的Terminal里输入 方法一&#xff1a; 1、首先鼠…

基于HarmonyOS ArkUI实现音乐列表功能

本节将演示如何在基于HarmonyOS ArkUI的List组件来实现音乐列表功能。 本文涉及的所有源码&#xff0c;均可以在文末链接中找到。 活动主页 华为开发者论坛 规则要求具体要求如下&#xff1a; 第1步&#xff1a;观看<HarmonyOS第一课>“营”在暑期•系列直播&#x…

冠达管理股票分析:数据资产入表规定落地 算力产业化加速在即

8月22日&#xff0c;算力龙头股鸿博股份股价强势涨停。方针面上&#xff0c;财政部日前拟定印发了《企业数据资源相关管帐处理暂行规则》。业内人士表明&#xff0c;数据财物入表规则落地将极大推进数据运营变现。这能改进和优化企业的财物负债表和损益表&#xff0c;更有利于促…

Android 使用模拟器模拟Linux操作系统

1. 简介 在Android手机上使用模拟器模拟ubuntu等操作系统&#xff0c;便于测试 2. 软件准备 Termux&#xff1a;是一款 Android 终端模拟器和 Linux 环境应用程序&#xff0c;无需 root 或设置即可直接运行。虽然酷安和谷歌菜市场都能下载&#xff0c;但这些渠道都很久没更新…