代码随想录day27 贪心1
题目:455.分发饼干 376.摆动序列 53.最大子序和
需要重做:全部
贪心算法其实就是没有什么规律可言,所以大家了解贪心算法 就了解它没有规律的本质就够了。
不用花心思去研究其规律, 没有思路就立刻看题解。
理论基础
贪心的本质是选择每一阶段的局部最优,从而达到全局最优。
怎么判断能不能用贪心:举反例。举的出来则不用,举不出来则用贪心。
贪心算法一般分为如下四步:最重要的是想清楚局部最优,能否推倒出全局最优。
- 将问题分解为若干个子问题
- 找出适合的贪心策略
- 求解每一个子问题的最优解
- 将局部最优解堆叠成全局最优解
455.分发饼干
思路:1.首先排序
2.遍历饼干,从小到大,index记录到第几个孩子。
3.也可以遍历孩子,从大到小,index记录第几个饼干
注意:
另外两种组合也可以写,只是要多加几个变量来记录和控制。
代码:
1.从前往后,遍历饼干,即先满足小胃口
class Solution {
public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(),g.end());sort(s.begin(),s.end());int index=0;for(int i=0;i<s.size();i++){if(index<g.size()&&g[index]<=s[i])index++;}return index;}
};
2.从前往后,遍历孩子(麻烦)
class Solution {
public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(),g.end());sort(s.begin(),s.end());int index=0,num=0,time=0;for(int i=0;i<g.size()&&(time<=s.size()||time<=g.size());i++){time++;if(index<s.size()&&s[index++]>=g[i]){num++;continue;}i--;}return num;}
};
3.从后往前,遍历孩子.即先满足大胃口
class Solution {
public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(),g.end());sort(s.begin(),s.end());int num=0,index=s.size()-1;for(int i=g.size()-1;i>=0;i--){if(index>=0&&g[i]<=s[index]){index--;num++;}}return num;}
};
376. 摆动序列
思路1:1.因为题目说了可以增删元素,所以就在增删的基础上进行搜索。
2.只要是摆动的,就一定是上下上下或下上下上,所以一个波谷就是一个元素。
3.选择curdiff和prediff进行值的更新。res记录
4.考虑几种情况:
1.正常,全是波峰波谷:prediff<0&&curdiff>0||prediff>0&&curdiff<0
2.两端低或高中间平:1-2-2-2-1,这时候选择跳过前面的两个2,只记录最后一个2,则条件需要为:prediff<=0&&curdiff>0||prediff>=0&&curdiff<0。(只看最后一个2所处的左右状况就可以写出来)。
3.上坡中间有多个平坡:1-2-2-2-3-4-4-5。这个时候,prefix的更新时间就必须要在最后一个平坡元素确认的时候才更新,以及正常坡的时候更新。
注意:res初始值为1。prediff可以由curdiff继承来。
代码:
class Solution {
public:int wiggleMaxLength(vector<int>& nums) {int curdiff=0;int prediff=0;int res=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){res++;prediff=curdiff;}}return res;}
};
思路2:动态规划。等学到动态规划再回来写
思路3:在思路2基础上,可以用两棵线段树来维护区间的最大值。
53. 最大子序和
思路:首先想法是暴力,从i开始,里面定义一个count,然后从j开始循环到最后。得到最大值。这样的代码超时了。
然后考虑贪心:局部为正且大即可
我需要的是不断求取为正且大的区间和,所以只要这段区间和的值小于0,我就让区间和count=0;
如何记录最大的?res,如果res<count ;则赋值。
注意:每次count都+=num,只是改变count的值。
思路是:不能让连续和为负数的时候再加上元素,而不是!不能让连续和加上负数
代码:
class Solution {
public:int maxSubArray(vector<int>& nums) {int res=INT_MIN;int count=0;for(int i=0;i<nums.size();i++){count+=nums[i];if(count>res){res=count;}if(count<0)count=0;}return res;}
};
相关文章:
代码随想录day27 贪心1
题目:455.分发饼干 376.摆动序列 53.最大子序和 需要重做:全部 贪心算法其实就是没有什么规律可言,所以大家了解贪心算法 就了解它没有规律的本质就够了。 不用花心思去研究其规律, 没有思路就立刻看题解。 理论基础 贪心的…...
Hive 部署
1 下载并安装 1.1 Hadoop安装 参考另一篇博客:Hadoop 部署 1.2 安装包下载 可通过下面网站下载: 官网:https://dlcdn.apache.org/hive/。清华源:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/。 比如下载apache-hive-4…...
SDK 指南
在前端开发中,SDK(Software Development Kit,软件开发工具包)是一个用于帮助开发者在特定平台、框架或技术栈中实现某些功能的工具集。 1. SDK 是什么? SDK 是一种开发工具包,它提供了开发人员实现某些功…...
unity Default constructor not found for type 的问题
文章目录 前言一、怎么解决?总结 前言 突然有一次打包PC的包出来,JSON就无法正常获取,后来找到原因: 应该是设置渲染等级相关的东西,不小心把剥离等级设置套高了。 一般情况不会出现,向我这种老爱unity 编…...
富文本编辑器实现表单非空校验
首先尝试使用form的rules规则去验证,发现未生效; <el-form ref"form" :disabled"readonly" :model"form" :rules"rules" label-width"120px"><el-form-item label"内容" prop&quo…...
使用uniapp开发微信小程序-框架搭建
最近要开发一个小程序,为了降低学习成本,最后还是选择使用uniapp来开发,但是由于电脑性能不行,实在不想多跑一个应用程序,就简单搭建了一个可以用vscode跑的uniapp项目。 项目整体技术栈:vue3 pinia type…...
华为浏览器(HuaweiBrowser),简约高效上网更轻松
华为浏览器是一款由华为公司自主研发的网页浏览工具,凭借其独特的设计理念和优质的用户体验,正在吸引越来越多的用户关注。这款基于Chromium技术打造的浏览器不仅继承了Chrome的高性能特质,更融入了华为自身的创新元素,为用户打造…...
SQLite
文章目录 1、什么是信息?2、 数据库模型3、sqLite 数据库4、 SQL 语句基础5、对数据库文件 SQL 语句:6、创建表:create 语句7、创建表:create 语句(设置主键)8、查看表: .table9、修改表: alter语句10、删除表:drop table 语句11、插入新行:insert into 语句(全部赋值)12、插入…...
uniapp下拉选择组件
目录 背景 实现思路 代码实现 配置项 使用 尾巴 背景 最近遇到一个这样的需求,在输入框中输入关键字,通过接口查询到结果之后,以下拉框列表形式展现供用户选择。查询了下uni-app官网和项目中使用的uv-ui库,没找到符合条件的…...
解决 vue3 中 echarts图表在el-dialog中显示问题
原因: 第一次点开不显示图表,第二次点开虽然显示图表,但是图表挤在一起,页面检查发现宽高只有100px,但是明明已经设置样式宽高100% 这可能是由于 el-dialog 还没有完全渲染完成,而你的 echarts 组件已经开始尝试渲染图…...
WebSSH:基于Go实现的高效Web SSH客户端指南
WebSSH:基于Go实现的高效Web SSH客户端指南 WebSSH 功能强大,Go 实现的一个WebSSH,支持文件上传下载 [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/webssh1/WebSSH 项目基础介绍: WebSSH是一个由Golang编写的高效…...
Hive其四,Hive的数据导出,案例展示,表类型介绍
目录 一、Hive的数据导出 1)导出数据到本地目录 2)导出到hdfs的目录下 3)直接将结果导出到本地文件中 二、一个案例 三、表类型 1、表类型介绍 2、内部表和外部表转换 3、两种表的区别 4、练习 一、Hive的数据导出 数据导出的分类&…...
shell脚本定义特殊字符导致执行mysql文件错误的问题
记得有一次版本发布过程中有提供一个sh脚本用于一键执行sql文件,遇到一个shell脚本定义特殊字符的问题,sh脚本的内容类似以下内容: # 数据库ip地址 ip"127.0.0.1" # 数据库密码 cmdbcmdb!#$! smsm!#$!# 执行脚本文件(参…...
【从零开始入门unity游戏开发之——C#篇29】C#泛型(T)和 泛型约束
文章目录 一、泛型1、泛型是什么2、泛型分类2.1. **泛型类和泛型接口**2.2. **泛型方法** 3、泛型类和接口3.1 泛型类示例:3.2 泛型接口示例:3.3 泛型类接受多个类型参数: 4、泛型方法4.1. **普通类中的泛型方法**4.2. **泛型类中的泛型方法*…...
一个从oracle使用spool导出数据到kadb的脚本
1. dump_data.sh调用sql_dump.sh导出数据 2. load_data.sh将导出的数据加载至KADB 1. dump_data.sh #!/bin/bash begin_time$(date %Y%m%d -d -1 day) end_time$(date %Y%m%d) echo "数据导出日期:"$begin_time echo "数据导出日期:"$begin_time >>…...
两道数组有关的OJ练习题
系列文章目录 🎈 🎈 我的CSDN主页:OTWOL的主页,欢迎!!!👋🏼👋🏼 🎉🎉我的C语言初阶合集:C语言初阶合集,希望能…...
仿闲鱼的二手交易小程序软件开发闲置物品回收平台系统源码
市场前景 闲置物品交易软件的市场前景广阔,主要基于以下几个方面的因素: 环保意识提升:随着人们环保意识的增强,越来越多的人开始关注资源的循环利用,闲置物品交易因此受到了广泛的关注。消费升级与时尚节奏加快&…...
uni-app使用组件button遇到的问题
在HBuilder X工具中新建一个空白项目, 1、新建一个about页 然后在pages.json文件里加上路由 2、然后看下导航的方法,发现找不到navigateTo方法 参考:button | uni-app官网 第3行和第4行的代码倒是没问题的,第5行的代码有问题执行…...
halcon单相机+机器人*眼在手外标定心得
目的 得到相机坐标系下的点与机器人底座base的转换关系,camera_in_base 两个不确定的定量 1,相机与机器人底座base之间的相对位置是固定的,既camera_in_base 2,机械手末端与标定物 tool_in_obj是固定的 辅助确定量 工作台与相…...
为什么在多数据源的情况下,单数据源的自动配置类会失效?
在 Spring Boot 中,DataSourceAutoConfiguration 是单数据源情况下的默认自动配置类。当引入多数据源方案(例如 dynamic-datasource-spring-boot-starter)后,单数据源的自动配置机制会失效,原因主要在于多数据源自动配…...
Y3编辑器教程8:资源管理器与存档、防作弊设置
文章目录 一、资源管理器简介1.1 界面介绍1.2 资源商店1.3 AI专区1.3.1 AI文生图1.3.2 AI图生图1.3.3 立绘头像 二、导入导出2.1 文件格式2.2 模型导入2.2.1 模型制作后导出2.2.2 模型文件导入Y3编辑器2.2.3 Y3编辑器角色、装饰物模型要求 2.3 纹理导入2.4 材质贴图2.4.1 材质支…...
域名劫持污染可以拦截吗?
在当今数字化的时代,互联网已经成为人们生活、工作和学习不可或缺的一部分。然而,网络世界并非一片净土,域名劫持污染这一威胁如同潜藏在暗处的 “幽灵”,时刻困扰着网络的安全与稳定,也引发了人们对于其是否可以被有效…...
解决“SVN无法上传或下载*.so、*.a等二进制文件“问题
今天,在使用Subversion提交代码到服务器时,发现无法提交*.a、*.so等二进制文件,右击这些文件,发现其属性为ignores。 问题原因:SVN的配置文件里,屏蔽了*.a、*.so文件的上传与下载,并把这些…...
2024年河北省职业院校技能大赛云计算应用赛项赛题第2套(私有云)
#需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包…...
登山第十六梯:深度恢复——解决机器人近视问题
文章目录 一 摘要 二 资源 三 内容 一 摘要 深度感知是基于 3D 视觉的机器人技术的一个重要问题。然而,现实世界的主动立体或 ToF 深度相机经常会产生嘈杂且深度不完整,从而成为机器人性能的瓶颈。在这项工作中,提出了 一个基于学习的立体…...
【自动驾驶】3 激光雷达③
5 激光雷达点云检测模型 🦋🦋🦋CenterPoint是Anchor‐Free的3D物体检测器,以点云作为输入,将三维物体在Bird‐View下的中心点作为关键点,基于关键点检测的方式回归物体的尺寸、方向和速度。相比于Anchor‐…...
新手福音:有哪些比Zotero更友好的文献管理软件?
别找了,3个被夸上天的论文阅读神器,我都帮你测评好了,直接抄我作业!! Scholaread、Zotero和EndNote,这些工具在复杂的学术探索中给我点亮了一盏灯,那感觉棒极了! 虽然每个工具都不…...
消费导刊杂志社消费导刊杂志消费导刊编辑部2024年第41期目录
征稿启事 封2 轻工艺术 浅谈青瓷创作中的艺术审美 周水淼1-4 浅谈木雕艺术在红木家具创作中的应用 蒋宝良5-8 浅谈对唐卡艺术高技能人才培养的必要性 夏吾他9-12 龙泉宝剑锻造技艺 叶明13-16 传承吸纳,创造吐新——论越窑青瓷新时代的传承和创新路径 盛海尧17-20 浅析龙泉哥窑艺…...
Datawhale-AI活动2024.12.24
目录 一、番茄时钟(1)输入Prompt(2)创建 HTML 文件解析1:HTML结构解析2:计时器内容解析3:按钮区域解析4:脚本引用 (3)使用JavaScript实现时钟功能解析1&#…...
揭秘:薪酬绩效管理咨询公司收费标准
在当今这个竞争激烈的商业环境中,企业的人力资源管理变得尤为重要,尤其是薪酬绩效管理体系的构建与优化。一个合理的薪酬绩效管理制度不仅能激发员工的积极性与创造力,还能帮助企业实现战略目标,提升整体竞争力。然而,…...
适用于机器视觉应用的智能机器视觉控制平台
工控机在机器视觉系统设计中是不可或缺的核心组件,在机器视觉中发挥着至关重要的作用,其强大的计算能力、高度的稳定性和可靠性、实时性以及图像处理和识别能力,为机器视觉检测提供了有力支持。 Nuvis系列机器视觉控制平台是适用于现如今机器…...
leetcode hot100 LRU缓存
146. LRU 缓存 已解答 中等 相关标签 相关企业 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中&…...
什么是DDoS攻击?如何防范DDoS攻击?
定义 DDoS(Distributed Denial of Service)攻击全称为分布式拒绝服务攻击。它是一种恶意的网络攻击手段,攻击者通过控制大量的计算机(这些计算机通常被称为“僵尸主机”或“肉鸡”),同时向目标服务器或网络…...
使用 Dash 构建交互式数据可视化应用
使用 Dash 构建交互式数据可视化应用 1. 什么是 Dash? Dash 是一个由 Plotly 开发的开源 Python 框架,用于快速构建交互式数据可视化应用。Dash 将前端(HTML、CSS 和 JavaScript)与后端(Python)无缝集成&…...
【Linux网络编程】第十五弹---传输层深度解析:端口号划分、UDP协议特性与TCP协议全面剖析(含连接管理、流量控制、拥塞控制等)
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、传输层 1.1、再谈端口号 1.1.1、端口号范围划分 1.1.2、认识知名端口号 1.1.3、两个问题 1.2、UDP …...
SQL语句整理五-StarRocks
文章目录 查看版本号:SPLIT:insert 和 update 结合 select:报错:1064 - StarRocks planner use long time 3000 ms in memo phase:字段增删改: 查看版本号: select current_version(); current…...
【GIS教程】使用GDAL实现栅格转矢量(GeoJSON、Shapefile)- 附完整代码
文章目录 一、 应用场景1、GeoJSON2、ESRI Shapefile3、GDAL 二、基本思路1、数据准备2、重投影(可选)3、创建空的矢量图层4、栅格转矢量 三、完整代码四、总结五、拓展(使用ArcGIS工具进行栅格转矢量) 一、 应用场景 TIFF格式的…...
美国加州房价数据分析02
5. 特征工程 5.1重构数据集 承接上文提到的相似度排名,去掉部分无关的特征。 train_set.corr()["median_house_value"].sort_values(ascendingFalse)为了提高模型训练后的鲁棒性,即防止过拟合,不建议删除关联度最低几项特征&#…...
[安徽省赛 2021]misc签到
给了一个图片,改成jpg格式,查看属性 发现备注 this_is_password 这可能是密码什么东西的 把图片拉到kali里面用用工具binwalk工具分离 发现了flag.txt文件 把压缩包拉到windows系统中 解压,输入密码 得到flag NSSCTF{ab32056rfanla12380a…...
LeetCode:1705. 吃苹果的最大数目(优先级队列 + 贪心 Java)
目录 1705. 吃苹果的最大数目 题目描述: 实现代码与解析: 优先级队列 贪心 原理思路: 1705. 吃苹果的最大数目 题目描述: 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果。在第 i 天&#x…...
MX3200显微尺寸测量仪
产品简介 MX3200显微尺寸测量仪将显微成像与传统影像测量相结合,实现了微小特征的大范围测量。配置电动塔台,可自动切换到不同的倍率,探测各种精密微观二维尺寸特征。尺寸测量功能丰富,可进行各种二维尺寸点、线、圆等的测量和形…...
VR 动感单车身心调适系统的功能与作用
如今,人们面临着来自各方的压力,国家重视国民身心健康,但人们在实际生活中却缺乏有效的身心调节方式。无论是久坐的白领,还是学业繁重的学生,都存在身体亚健康和心理压力大的问题。传统健身方式枯燥、心理咨询成本高且…...
LabVIEW伸缩臂参数监控系统
LabVIEW开发伸缩臂越野叉车参数监控系统主要应用于工程机械中的越野叉车,以提高车辆的作业效率和故障诊断能力。系统通过PEAK CAN硬件接口和LabVIEW软件平台实现对叉车作业参数的实时监控和故障分析,具有良好的实用性和推广价值。 系统组成 系统主要由P…...
Spring提供了很好事务管理机制
事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制 分类 主要分为编程式事务和声明式事务两种。 编程式事务 是指在代码中手动的管理事务的提交、回滚等操作,代码侵入性比较强,如下示例: try {//TODO so…...
Selenium 和 Playwright两大框架的不同之处
自动化测试工具百花齐放,其中 Selenium 和 Playwright 是两大热门框架,谁才是你的最佳选择?面对企业项目的真实需求,它们的差异究竟在哪儿? Selenium 和 Playwright 是两种流行的自动化测试工具,它们都被用…...
【计算机视觉】轮廓检测
一、轮廓检测 在计算机视觉中,轮廓检测是另一个比较重要的任务,不单是用来检测图像或者视频帧中物体的轮廓,而且还有其他操作与轮廓检测相关。 以下代码展示了如何使用 OpenCV 进行 图像阈值处理、寻找图像轮廓 和 绘制轮廓 的完整流程&…...
【Linux】深入Linux:GCC/G++编译器实用指南
Linux相关知识点可以通过点击以下链接进行学习一起加油!初识指令指令进阶权限管理yum包管理与vim编辑器 在Linux系统中,理解和掌握GCC/G编译器是开发者不可或缺的技能之一。本文将深入探讨它们的工作原理和实际运用,帮助读者更好地利用这些强…...
【未来编程:AI如何通过合成复用原则优化设计】
🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:“没有罗马,那就自己创造罗马~” 文章目录 前言合成复用原则含义 继承复用含义UML图实现代码运行结果及分析优缺点 合成复用(我有这…...
【Rust自学】5.3. struct的方法(Method)
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 5.3.1. 什么是方法(Method) 方法和函数类似,也是用fn关键字进行声明,方法也有名称,也有参数ÿ…...
单片机 STM32入门
一、什么是单片机 单片机(Microcontroller Unit,MCU)是一种集成电路芯片,它将计算机的CPU、存储器(包括RAM和ROM)、输入/输出接口等集成在一个芯片上。单片机通常用于嵌入式系统,能够执行特定的…...