【代码随想录】刷题Day31

news2024/12/24 11:29:28

1.分发饼干

455. 分发饼干

贪心的思路就是:小的饼干尽量去匹配胃口小的孩子,这样才能实现尽可能多孩子吃到。

那么代码就很好写了:

1.排序g和s,这样方便查找小的数

2.饼干的位置不停遍历,对应我们需要一个ret代表当前孩子位置

3.如果当前位置为孩子的数量,说明ret记录下所有的孩子,直接返回即可。如果当前孩子的胃口刚好小于等于饼干遍历的位置,说明此时这个孩子是满足要求的,那么ret++,此外,说明条件不满足,我们需要找下一个饼干去判断是否满足大于或者等于小孩胃口的条件

class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
        sort(g.begin(),g.end());
        sort(s.begin(),s.end());
        int ret = 0;
        for(int i=0;i<s.size();i++)
        {
            if(ret==g.size())
                break;
            if(g[ret]<=s[i])
                ret++;
        }
        return ret;
    }
};

2.摆动序列

376. 摆动序列

贪心的思路:如果前一个的趋势和后一个的趋势一样,那么我们就刨除掉当前的点。这样就能有最长的序列了

1.先介绍变量用来记录什么:

int ret = 1:代表返回的摆动点数,由于默认一个点就是一个数,那么我们初始化就变为1

int prev = 0 :代表前一次波动的趋势,不过要注意的是,我们开始设置为平波动是因为第一个位置不需要比较,默认计数一次;后面prev不会用来记录平波动,这是我用来判断连续平波和上坡交替出现时的特殊点,之所以这样设计,是让prev代表从ret没有变化后整体的趋势,如果cur=0,此时不能代表前面的就一定是有起伏的,那么也就不能让ret++。

int cur = 0:当前位置与前一个位置的趋势情况。

prev和cur的比较就是用来判断ret是否加一的条件!!

2.由于第一个数(下标为0),已经被我们记录下来了,那么循环的开始就从下标1开始。先更新cur为当前的数减去前一个数。随后判断此时的prev和cur条件

*由于开始我们设置的prev=0,所以此时的条件一定有一个是(prev==0&&cur!=0),因为我们有一个条件是不能忽略的:最开始就有一个上升趋势,那么当前的位置是需要加一的操作才能记录下,所以ret++

*(prev>0&&cur<0)||(prev<0&&cur>0),那么就是一个起伏,说明当前的趋势和上一次趋势是相反的,那么是可以将当前的ret++

*上面两个判断都需要更新节点前一个的趋势prev=cur;那么值得注意的是,当cur=0时,我们不更新prev,就是条件1介绍:prev是必须要用来表示ret不变时,整体的趋势,这样才能判断下一次的趋势和整体趋势区别,才能对ret进行操作

class Solution {
public:
    int wiggleMaxLength(vector<int>& nums) {
        int ret = 1;
        int prev = 0;
        int cur = 0;
        if(nums.size()==1)
            return ret;
        for(int i=1;i<nums.size();i++)
        {
            cur = nums[i]-nums[i-1];
            if((prev>0&&cur<0)||(prev<0&&cur>0)||(prev==0&&cur!=0))
            {
                ret++;
                prev=cur;
            }
        }
        return ret;
    }
};

3.最大子数组和

53. 最大子数组和

贪心的思路:如果累加的总数小于0,那么后面的正数会影响,也就是说下一个位置的整数并没有起到使得总和变大的作用,那不如从下一个位置重新开始。

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int ret = nums[0];
        int tmp = 0;
        for(int i=0;i<nums.size();i++)
        {
            tmp+=nums[i];
            if(ret<tmp)
                ret=tmp;
            if(tmp<0)
                tmp=0;
        }
        return ret;
    }
};

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

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

相关文章

语义分割mask转json

文章目录 1 mask2json ——代码实现1.1 通过mask获取每个类别对应的灰度值1.2 mask 转 json 2 mask2json ——利用工具转2.1支持数据增强2.2 支持多种格式转换 本文介绍两种语义分割mask转json的方法&#xff1a; 方法1&#xff1a;是参考语义分割mask转json&#xff08;改进版…

教你用python的Streamlit库制作可视化网页应用

目录 步骤1&#xff1a;安装 Streamlit步骤2&#xff1a;创建一个新的 Python 文件步骤3&#xff1a;导入必要的库步骤4&#xff1a;编写应用程序代码步骤5&#xff1a;运行应用程序常用组件 当涉及到编写交互式应用程序时&#xff0c;Streamlit 是一个非常流行和强大的 Python…

图神经网络:处理点云

文章说明&#xff1a; 1)参考资料&#xff1a;PYG官方文档。超链。 2)博主水平不高&#xff0c;如有错误还望批评指正。 3)我在百度网盘上传了这篇文章的jupyter notebook和有关文献。超链。提取码8848。 文章目录 简单前置工作学习文献阅读Point的实现模型问题 简单前置工作学…

用项目管理思维来过5·20,真实太酷啦!

明天就是一年一度的520啦&#xff0c;阿道单身多年的同事刚京在四月成功使用SWOT分析模型相亲成功&#xff0c;牵手女嘉宾。二人眼看着就要迎来在一起后的第一个节日520&#xff0c;刚京却因为没有头绪而陷入了不知所措的焦虑。 团队成员齐上阵&#xff0c;用项目管理思维&…

使用 Apache Flink 开发实时 ETL

Apache Flink 是大数据领域又一新兴框架。它与 Spark 的不同之处在于&#xff0c;它是使用流式处理来模拟批量处理的&#xff0c;因此能够提供亚秒级的、符合 Exactly-once 语义的实时处理能力。Flink 的使用场景之一是构建实时的数据通道&#xff0c;在不同的存储之间搬运和转…

<组件封装:Vue + elementUi 通过excel文件实现 “ 批量导入 ” 表单数据,生成对应新增信息 >

Vue elementUi 通过excel文件实现 “ 批量导入 ” 表单数据&#xff0c;生成对应新增信息 &#x1f449; 前言&#x1f449; 一、封装组件对应API及绑定事件> Attributes> Event &#x1f449; 二、实现案例> HTML父组件模板> 子组件模板 &#x1f449; 三、效果演…

线程相关基础知识

一、相关概念 1.1 cpu 中央处理器&#xff08;central processing unit, 简称cpu &#xff09;&#xff0c;计算机系统的 运算 和 控制 核心 1.2 cpu核心数和线程数 cpu核心数指cpu 内核数量&#xff0c;如双核、四核、八核。 cpu线程数是一种逻辑的概念&#xff0c;就是模…

基于 SpringBoot + Redis 实现分布式锁

大家好&#xff0c;我是余数&#xff0c;这两天温习了下分布式锁&#xff0c;然后就顺便整理了这篇文章出来。文末附有源码链接&#xff0c;需要的朋友可以自取。 至于什么是分布式锁&#xff0c;这里不做赘述&#xff0c;不了解的可以自行去查阅资料。 文章目录 实现要点项目…

android13 FLAG_BLUR_BEHIND 壁纸高斯模糊,毛玻璃背景方案设计-千里马framework实战

hi,粉丝朋友们! 今天有个学员朋友&#xff0c;问到了一个高斯模糊相关问题&#xff0c;这个高斯模糊相关的需求我相对还是比较熟悉&#xff0c;下面来重点讲解一下新版本高斯模糊相关的实现。 更多framework干货知识手把手教学 Log.i("qq群"&#xff0c;“422901085…

[230528] 托福阅读真题|TPO66 13/30|整卷得分22/30|9:45~10:45|15:40~16:40

The Actor and the Audience P1 rehearsev 排练&#xff1b;排演anticipate v 预期&#xff1b;预料&#xff1b;预见 audiencen 观众brilliantadj 灿烂的&#xff1b;绝妙的rehearsaln 排练&#xff1b;预演&#xff1b;排演crumblev 崩塌stage frightn 怯场&#xff08;演员…

自动化测试框架?这应该是全网最全自动化框架总结了,你要的都有...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Python自动化测试&…

学术加油站|基于LSM-tree存储系统的内存管理,最大限度降低I/O成本

本文系北京理工大学科研助理牛颂登所著&#xff0c;本篇也是 OceanBase 学术系列稿件第 10 篇。欢迎访问 OceanBase 官网获取更多信息&#xff1a;https://www.oceanbase.com/ 「牛颂登&#xff1a;北京理工大学科研助理&#xff0c;硕士期间在电子科技大学网络空间安全研究院从…

资深老鸟总结,Selenium自动化测试实战小技巧,不要再走弯路了...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Selenium4自动化测…

数据库小技能:数据报表

文章目录 I 需求1.1 补贴II 实现思路2.1 生成资金调节报表数据III Dto3.1 报表基本查询IV 接口I 需求 代理商调节活动汇总商户调节活动汇总激励金日月汇总数据源:活动流水表(上游回调) 1.1 补贴 调节活动补贴= D0补贴+T1补贴。(比如交易金额满足1000,转T1) 补贴金额 =…

图扑数字孪生智慧灯杆,“多杆合一”降本增效

前言 随着智慧城市建设的不断深入&#xff0c;智慧灯杆作为城市基础设施的重要组成部分&#xff0c;正在成为城市智能化和绿色化的重要手段之一。 效果展示 图扑智慧灯杆系统在城市道路照明领域引入信息化手段&#xff0c;通过构建路灯物联网&#xff0c;实现了现代化的路灯按…

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(下)

Gram-Schmidt正交化过程 到目前为止&#xff0c;我们都是在反复强调“对于无解的方程组Axb而言&#xff0c;如果矩阵A是标准正交矩阵的话&#xff0c;就怎么怎么好了。。。。”。因为&#xff0c;不论是求投影还是计算最小二乘的正规方程&#xff0c;他们都包含了。当A为标准正…

yolov4论文解读

数据层面上的数据增强 四张照片拼接成一张进行训练 相当于增大了batch-size&#xff0c;更适合于单GPU。 Mosaic data augmentation 马赛克数据增强 self-adversarial training(SAT) 自我对抗训练 DropBlock Label Smoothing 损失函数 由IOU改进到CIOU 网络结构 CSPNet&…

Win10 WLAN驱动正常但仍然不显示无线网络解决办法

Win10 WLAN驱动正常但仍然不显示无线网络解决办法 写作背景过程解决方案结尾 写作背景 本菜鸡重置了电脑的网络&#xff0c;然后重新启动后 WLAN 不见了&#xff0c;连不了 WIFI 了&#xff0c;很疑惑&#xff0c;后来经过一番搜索找到了问题所在&#xff0c;写下本篇文章以记…

Spark/Flink广播实现作业配置动态更新

前言 在实时计算作业中&#xff0c;往往需要动态改变一些配置&#xff0c;举几个栗子&#xff1a; 实时日志ETL服务&#xff0c;需要在日志的格式、字段发生变化时保证正常解析&#xff1b;实时NLP服务&#xff0c;需要及时识别新添加的领域词与停用词&#xff1b;实时风控服…

访问学者J1签证面签的七个问题

作为访问学者&#xff0c;申请J1签证面签时可能会遇到一些常见问题。下面知识人网小编将介绍七个访问学者面签可能遇到的问题&#xff0c;并提供相应的答案。 问题一&#xff1a;您将在美国进行何种类型的学术研究&#xff1f; 答案&#xff1a;我将在美国从事学术研究&#x…