day31 贪心算法 分发饼干 摆动序列 最大子序和

题目1:455 分发饼干

题目链接: 455 分发饼干

题意

给孩子分发饼干,每个孩子最多只能有1块饼干

每个孩子i都有一个胃口值g[i] ,每块饼干j的尺寸是s[j]   如果s[j]>=g[i]可以将这个饼干分配给孩子i 孩子就会得到满足,尽可能多地满足孩子,输出最大值

局部最优:将大尺寸的饼干分配给大胃口的孩子,充分利用饼干

全局最优:满足数量多的孩子

代码

class Solution {
public:int findContentChildren(vector<int>& g, vector<int>& s) {//排序sort(g.begin(),g.end());sort(s.begin(),s.end());int result = 0;int index = s.size()-1;//先遍历胃口for(int i=g.size()-1;i>=0;i--){if(index>=0 && s[index]>=g[i]){index--;result++;}}return result;}
};
  • 时间复杂度:O(nlogn)
  • 空间复杂度:O(1)

题目2:376 摆动序列

题目链接:376 摆动序列

题意

连续数字之间的差在正数和负数之间交替,这样的数字序列称为摆动序列  仅由1个元素或两个不等元素的序列也是摆动序列  

子序列可以从原始序列中删除或不删除元素获得,其余元素保持原始顺序不变

返回整数数组中摆动序列最长子序列的长度

局部最优:删除单调坡中的元素,全局最优:最长摆动序列

不用真正删除数组中的元素(O(n)),直接计数长度即可

默认数组有一个摆动序列的长度

代码

class Solution {
public:int wiggleMaxLength(vector<int>& nums) {int result = 1;//计数序列的最右边int prediff = 0;int curdiff = 0;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;}
};
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

题目3:53 最大子序和

题目链接:53 最大子序和

题意

找出整数数组nums中具有最大和的连续子数组,返回最大和

连续和是负数,加上后面的数只会拖累后面的数,让后面的数更小,所以从后面的数重新计算连续和;只要连续和是正数,该连续和加上后面的数,就会增大后面的数

局部最优:连续和为负数,立刻抛去连续和,以下一个数为起点计算连续和

全局最优:找到最大连续和

贪心算法

代码

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;}
};
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【分布式技术专题】「探索高性能远程通信」基于Netty的分布式通信框架实现(Dispatcher和EventListener)(下)

基于Netty的分布式通信框架实现 前提介绍本节重点Dispatcher&#xff08;分派调度器&#xff09;EventListenerChannelEventListenerChannel通道事件定义ChannelActionEvent Heartbeat、超时及重连机制 前提介绍 经过阅读《【分布式技术专题】「探索高性能远程通信」基于Netty…

短视频矩阵项目年后还能做吗/技术源头搭建分析

短视频矩阵项目年后还能做吗/技术源头搭建分析&#xff1a; 问&#xff1a;矩阵系统年后还可以迭代更新开发继续做吗&#xff1f; 答&#xff1a;可以的&#xff0c;企业依旧有需求 问&#xff1a;如何考察技术团队&#xff1f; 答&#xff1a;以下三个方面 一、是否是抖音…

2024 新年HTML5+Canvas制作3D烟花特效(附源码)

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

时隔3年 | 微软 | Windows Server 2025 重磅发布

最新功能 以下是微软产品团队正在努力的方向&#xff1a; Windows Server 2025 为所有人提供的热补丁下一代 AD 活动目录和 SMB数据与存储Hyper-V 和人工智能还有更多… Ignite 发布视频 Windows Server 2025 Ignite Video 介绍 Windows Server 2022 正式发布日期是2021年…

【计算机视觉(CV)技术的优势和挑战】

背景&#xff1a; 在当今数字时代&#xff0c;博客成为了分享知识、展示个人专业能力和吸引读者的重要工具。然而&#xff0c;随着越来越多的博客涌现&#xff0c;如何优化博客的内容和用户体验成为了一个关键的问题。计算机视觉&#xff08;CV&#xff09;技术是一种利用计算机…

对于已交付(客户流失预警)模型的模型可解释LIME

目录 介绍&#xff1a; 数据&#xff1a; 数据处理&#xff1a; 随机森林建模&#xff1a; LIME 例一&#xff1a; 例二&#xff1a; 介绍&#xff1a; LIME (Local Interpretable Model-agnostic Explanations) 是一种解释机器学习模型的方法。它通过生成一个可解…

【AI_Design】Midjourney学习笔记

目录 后缀解析Promot合格使用prompt关键词描述 关键词化合作用关键词网站推荐 联合Chatgpt 后缀解析 –ar&#xff1a;宽高比设置–c&#xff1a;多样性设置&#xff08;数值0-100&#xff0c;默认值0&#xff09;–s&#xff1a;风格化设置&#xff08;数值0-1000&#xff0c…

Java 与 JavaScript的区别

Java 与 JavaScript的区别 Java 与 JavaScript&#xff1a;概述Java的特点JavaScript 的起源JavaScript 的特点Java 与 JavaScript&#xff0c;哪个更好&#xff1f;JavaScript 与 Java 相似吗&#xff1f;Java 与 JavaScript 的区别JavaScript 在服务器端的运行方式是怎样的&a…

《HTML 简易速速上手小册》第10章:HTML 的维护与优化(2024 最新版)

文章目录 10.1 网页性能优化10.1.1 基础知识10.1.2 案例 1&#xff1a;优化网页图像10.1.3 案例 2&#xff1a;使用延迟加载优化性能10.1.4 案例 3&#xff1a;优化 CSS 和 JavaScript 的加载 10.2 SEO 最佳实践10.2.1 基础知识10.2.2 案例 1&#xff1a;创建一个 SEO 友好的博…

Linux系统Shell脚本-----------正则表达式 、grep、 sed

一、正则表达式 1.前言 正则表达式(regular expression)描述了一种字符串匹配的模式&#xff08;pattern&#xff09;&#xff0c;可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。在Linux中也就是代表我们定义的模式模板&…

常用芯片学习——AMS1117芯片

AMS1117 1A 低压差线性稳压器 使用说明 AMS1117 是一款低压差线性稳压电路&#xff0c;该电路输出电流能力为1A。该系列电路包含固定输出电压版本和可调输出电压版本&#xff0c;其输出电压精度为士1.5%。为了保证芯片和电源系统的稳定性&#xff0c;XBLWAMS1117 内置热保护和…

基于Pytorch的DDP训练Mnist数据集

在前几期的博文中我们讲了pytorch的DDP&#xff0c;但是当时的demo是自制的虚拟数据集&#xff08;Pytorch分布式训练&#xff1a;DDP&#xff09;&#xff0c;这期文章我们使用Mnist数据集做测试&#xff0c;测试并完善代码。 快速开始 1. 我们修改一下main函数&#xff0c;在…