【代码随想录|贪心算法01】

OpenMV识别颜色源码 【代码】OpenMV识别颜色源码。 阅读详情

代码随想录贪心算法文章链接代码随想录

理论:贪心本质是局部最优推出全局最优

and 贪心没有套路练就完事了

455.分发饼干

题目链接https://leetcode.cn/problems/assign-cookies

思路:尽量用大的饼干喂给胃口大的小孩

胃口:1,3,7,10

饼干:1,3,5,9

我们先把胃口数组和小孩数组进行排序,遍历胃口数组,我们把胃口数组从后往前遍历,只要我饼干数组能喂的就给,index--;小孩数count++,如果喂不了我就继续i--往前面找找胃口小的小孩。

这里只能用遍历胃口的数组来进行比较,因为如果从后往前遍历饼干数,我最大的饼干9拿去比发现要10,进行下次循环是饼干往前,那9给不了我1 3 5肯定也给不了。因此这里只能遍历胃口数组

class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
        sort(s.begin(), s.end());//饼干数组
        sort(g.begin(), g.end());//胃口数组
        int index = s.size() - 1;//指向饼干数组的下标
        int count = 0;//计数能喂给小孩的数量
        for (int i = g.size() - 1; i >= 0; i--) {//遍历胃口是i>=0因为从(0,size-1)都要比较
            while (index > 0 && s[index] >= g[i]) {//遍历饼干
                index--;
                count++;
            }
        }
        return count;
    }
};

376.摆动序列

题目链接https://leetcode.cn/problems/wiggle-subsequence

我们主要要删除的点是坡度上的点,对有坡度的点进行计数

局部最优:删除坡度上的点

整体最优:有最长的摆动序列

这里的思路是我遍历整个数组,每一轮都算出数组中下一个值和这个值的差curdiff和这个值和数组上一个值的差prediff(这里prediff不用每轮都算,只要坡度变化了我再把prediff的值赋值为curdiff)坡度变化,那计数摆动序列值加加

有二种情况

 一、上下坡中有平坡

比如[1,2,2,2,1]的序列

可以整体删掉平坡的左边数,只计数一个

所以我左边坡度prediff == 0,右边坡度无论是上升还是下降我都把这个把这个值计数
二、数组首尾两端              

当传入的数组只有两个数的时候题目说是算2的,那为了把这种情况和条件中结合起来,就把result计数为1,把最后一个值看成一个坡,如果传入的是两个值[2,3],你的prediff初始为0,所以2这个点也会进行计数,算出来的result为2

class Solution {
public:
    int wiggleMaxLength(vector<int>& nums) {
        if (nums.size() <= 1)
            return nums.size();
        int prediff = 0;//前一坡度
        int curdiff = 0;//现在这一坡度
        int result = 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)) {
                result++;
                prediff=curdiff;//坡度变化后再赋值
            }
            
        }
        return result;
    }
};

53.最大子数组和

题目链接https://leetcode.cn/problems/maximum-subarray

局部最优:连续和已经为负数后就放弃这个值,因为负数只会越加越小。

整体最优:有最大的连续子数组和

思路感觉就是如果我现在相加的值已经为负数了,那就直接把现在存的连续和count赋值为0吧,从新再看看后面的数能不能比result更大(也就是都是负数的话,选个最大的负数就得了,你再加的话越加越小没必要hhh),这道题颇有种哲学意义呀,过去的就让他过去吧,我们从零开始。

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int result=INT_MIN;
        int count=0;
        for(int i=0;i<nums.size();i++){
            count+=nums[i];
            if(count>result)result=count;//只有大于前一个存的最大和再赋值
            if(count<0)count=0;//重新赋值
        }
        return result;
    }
};

 

【35】软考软件设计师——设计模式代码填空(C++版)满分精讲|第5/6题二选一必考 本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第35篇,聚焦下午选做题**第5/6题C++版设计模式代码填空**,与上一篇Java版形成双子配套,单题分值稳定12~15分。全文超4000字深度拆解C++独有核心考点:虚函数/纯虚函数、构造与析构函数规范、继承权限、模板类编程在设计模式中的应用;精讲单例、工厂、策略、观察者、适配器五大高频模式的C++专属代码写法,标注所有填空核心点位、语法陷阱、内存安全规范 阅读详情

相关推荐

Circos图审美拯救计划:用TBtools复刻Nature级共线性分析图谱

本文针对Circos图在共线性分析中的审美提升问题,提供了一套基于TBtools的完整优化方案。通过构建和谐的色彩体系、精细控制信息层布局以及模仿顶刊构图逻辑,详细讲解了如何从配色、透明度、标签显示到高级参数设置,将默认图表升级为具有高级学术美感的Nature级图谱,助力研究者提升论文图表质量。

cherry的博客 911

代码随想录|学习工具分享

遇到看不懂的方法的时候(C++),可能是宏定义, 方法本身就是一个 宏定义,所以要找到定义他的地方,这种项目的代码 估计宏定义满天飞,如果没有好的文档,代码很难看自增自减运算符只能用于变量;不能用于常量和表达式。在使用map容器存储多个键值对时,容器会自动根据键值对的键大小,按照既定的规则进行排序(默认升序,可以自定义)使用map存储的键值对,键既不能重复也不能修改multimap和map的区别在于multimap容器可以同时存储多个键相同的键值对。

2303_79299383的博客 8703

时间序列聚类在股票市场分析中的实践与优化

时间序列聚类是一种面向动态行为建模的无监督学习方法,其核心在于通过语义感知的距离度量(如DTW)捕捉价格形态的相位弹性与结构相似性,而非依赖静态数值或标签驱动。相比K-Means等传统算法,它能有效缓解金融时序中普遍存在的噪声敏感、对齐失效与形态失真问题,从而提升聚类结果的市场可解释性与策略鲁棒性。该技术已广泛应用于市场状态识别、行业行为分群、异常交易监测等场景,并成为构建可验证量化分析框架的关键预处理层。本文聚焦A股真实行情数据,详解从原始OHLCV到可聚类时间序列的完整链路,涵盖DTW距离计算、层次聚类

weixin_34220179的博客 828

代码随想录刷题汇总

网站:https://www.programmercarl.com/

不思考会变草履虫哦 7263

基于深度学习的UWB门禁检测

针对基于UWB技术智能门禁管理系统,由于测距误差或非视距原因导致门禁产生不合理动作的现象。分析如何采用基于深度学习的方法,通过对TWR测距数据、TWR监听数据、到达角度差(PDOA)、信道脉冲响应(CIR)等数据维度进行深度学习,利用 TensorFlow建立相应的推导模型,对卡片姿态进行更加精准可靠的检测,从而更好完成闸机开合控制。

tenth_quadrant的博客 2026

SAP与泛微OA集成(半导体行业)

本项目通过SAP PO中间件集成SAP与泛微OA在半导体行业的应用,由于行业特殊性,广泛深入应用了RSA加密等特性

集信通 1163

代码随想录刷题笔记 (python版本) 持续更新.....

代码随想录刷题笔记

hello world 1万+

Armbian 国内源一键配置:告别卡顿,加速软件更新

本文详细介绍了如何为Armbian系统配置国内软件源,以解决默认国外源导致的更新缓慢、连接超时等问题。通过手动修改配置文件或使用高效的一键换源脚本,可将源切换至清华大学、阿里云等国内镜像站,实现apt更新与软件安装速度的质的飞跃,让Armbian开发体验更加流畅高效。

weixin_29215815的博客 243

网站收藏箱

文章内容都是笔者日常工作与学习接触到,并且觉得不错的网站,特收录在册,欢迎广大读者提供补充,文章会持续更新

沉梦听雨的博客 1万+

SQL注入绕过information_schema:实战技法与替代路径详解

SQL注入是Web安全领域的核心漏洞类型,其原理是通过构造恶意SQL语句,干扰应用程序与数据库的正常交互逻辑,从而窃取或篡改数据。在渗透测试与CTF竞赛中,绕过常见防护措施是提升技术能力的关键。当标准的信息收集方式受阻时,例如无法访问information_schema数据库,攻击者需要掌握替代的元数据获取方法。这些技术价值在于模拟真实环境中日益严密的防御体系,锻炼在受限条件下的系统性信息收集思维。典型的应用场景包括存在WAF过滤、权限限制或编码干扰的实战环境。本文将围绕SQL注入这一核心,深入探讨如何利用

weixin_33980459的博客 429

常见的AXI总线仲裁器概述-AXI协议理解(一)

SoC 设计广泛采用共享总线式的片上通信,其中的仲裁器是共享总线的关键技术之一。AMBA AXI 总线协议以高性能、高频率的系统设计为目标,适合高带宽、低延迟的系统设计,可以达到高频率的操作而不需要复杂的总线桥,满足众多部件的接口要求,具备高度灵活的互联结构,并且向后兼容 AHB 和 APB 接口。

Paul 安的博客 1万+

2024秋招算法

根据代码随想录和力扣进行算法训练的笔记,包括字符串,哈希表,栈与队列,二叉树,动态规划等模块。

weixin_43364551的博客 6401

挖矿病毒解决实例(隐藏进程,文章较好)(入侵)

CPU起飞了 最近有朋友在群里反馈,自己服务器的CPU一直处于高占用状态,但用top、ps等命令却一直找不到是哪个进程在占用,怀疑中了挖矿病毒,急的团团转。 根据经验,我赶紧让他看一下当前服务器的网络连接,看看有没有可疑连接,果然发现了有点东西: 上Shodan查一下这IP地址: 反向查找,发现有诸多域名曾经解析到这个IP地址: 这是一个位于德国的IP地址,开放了4444,5555,7777等数个特殊的服务端口: 其中这位朋友服务器上发现的连接到的是7777端口,

墨痕诉清风的博客 1万+

【代码随想录Day27】贪心算法Part01

的长度,会超出时间限制。我们可以通过使用双指针的方法将时间复杂度优化到。一开始使用了双重循环,时间复杂度为。

Shayne 的博客 1229

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

贪心算法学习01(代码随想录)

贪心算法摘要:贪心算法通过局部最优选择逐步达到全局最优解,适用于具有最优子结构和贪心选择性质的问题。经典例题包括分发饼干(最小资源匹配)、摆动序列(记录有效变化)、最大子数组(及时重置负和)等。解题关键在于排序预处理、双指针优化和边界条件处理。贪心策略需通过实践验证有效性,虽然不适用于所有问题,但在特定场景下能提供高效解法。学习过程中需培养对贪心策略的敏感度,理解局部最优到全局最优的转化机制。

2301_79545611的博客 708

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

代码随想录D27 贪心算法01 Python

贪心算法背景 455. 分发饼干 376. 摆动序列(含动规)53. 最大子数组和(含动规)

weixin_66889171的博客 1068

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

代码随想录-贪心算法01

贪心算法的核心思想就是通过每一个局部的最优解得到最后的全局最优解使用场景:如果感觉可以通过局部最优推导出全局最优而且暂时想不出反例,就可以试一试贪心算法。

weixin_73074012的博客 489

代码随想录贪心算法01

贪心算法没有套路,只有多练养成思维,局部最优推出全局最优。

m0_68161818的博客 156

代码随想录 day27 贪心算法part01

贪心算法其实就是没有什么规律可言,所以大家了解贪心算法 就了解它没有规律的本质就够了。不用花心思去研究其规律, 没有思路就立刻看题解。基本贪心的题目 有两个极端,要不就是特简单,要不就是死活想不出来。学完贪心之后再去看动态规划,就会了解贪心和动规的区别。

2401_88561446的博客 553

代码随想录算法训练营Day31|贪心算法01

贪心算法 455. 分发饼干 376. 摆动序列 53. 最大子数组和

weixin_57654532的博客 392

代码随想录算法训练31 | 贪心算法 part01

基本贪心的题目 有两个极端,要不就是特简单,要不就是死活想不出来。,所以大家了解贪心算法 就了解它没有规律的本质就够了。学完贪心之后再去看动态规划,就会了解贪心和动规的区别。不用花心思去研究其规律, 没有思路就立刻看题解。贪心算法其实就是没有什么规律可言。

Hello__Word___的博客 563

代码随想录 Day26贪心算法01-上

贪心01

qiuqiushuibx的博客 594

代码随想录第31天 | 贪心算法 part01

455.分发饼干● 376. 摆动序列● 53. 最大子序和。

techy649的博客 1155

代码随想录 day31 第八章 贪心算法 part01

基本贪心的题目 有两个极端,要不就是特简单,要不就是死活想不出来。,所以大家了解贪心算法 就了解它没有规律的本质就够了。学完贪心之后再去看动态规划,就会了解贪心和动规的区别。不用花心思去研究其规律, 没有思路就立刻看题解。● 376. 摆动序列。● 53. 最大子序和。● 455.分发饼干。

weixin_60315213的博客 869

代码随想录算法训练营 贪心算法part01

。

m0_63297917的博客 99

学习记录@代码随想录:贪心算法part01

例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿?指定每次拿最大的,最终结果就是拿走最大数额的钱。每次拿最大的就是局部最优,最后拿走最大数额的钱就是推出全局最优。

qq_40357993的博客 135
上一篇: 【代码随想录|回溯算法排列问题】
下一篇: 【代码随想录|贪心算法02】
mazo_command
博客等级 码龄2年 275粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值