【算法训练记录——Day31】

Day31——贪心算法Ⅰ

  • 1. 理论
    • 1.1 什么是贪心
    • 1.2 什么时候用贪心
    • 1.3 贪心算法一般步骤
  • 2.leetcode455——分发饼干
  • 3.leetcode376——摆动序列

目标:

  1. 理论
  2. leetcode455——分发饼干
  3. leetcode376——摆动序列
  4. leetcode53 —— 最大字序和

1. 理论

算法随想录——贪心

1.1 什么是贪心

贪心的本质是选择每一阶段的局部最优,从而达到全局最优。

1.2 什么时候用贪心

刷题或者面试的时候,手动模拟一下感觉可以局部最优推出整体最优,而且想不到反例,那么就试一试贪心
常识性推导加上举反例

1.3 贪心算法一般步骤

  1. 将问题分解为若干子问题
  2. 找出合适的贪心策略
  3. 求解每一个子问题的最优解
  4. 将局部最优解堆叠成全局最优解

2.leetcode455——分发饼干

在这里插入图片描述
思路:肯定要排序,然后一个一个看能否满足

	int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(), g.end());sort(s.begin(), s.end());int gIndex = 0;int sIndex = 0;while(gIndex < g.size() && sIndex < s.size()) {if(s[sIndex] >= g[gIndex]) {gIndex++;}sIndex++;}return gIndex;}

但是为什么这种解法是贪心呢?
贪在要尽可能满足大多数小孩,局部最优解是小饼干喂给胃口小的同学,因此排序

3.leetcode376——摆动序列

在这里插入图片描述

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

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

相关文章

持续总结中!2024年面试必问 20 道设计模式面试题(三)

上一篇地址&#xff1a;持续总结中&#xff01;2024年面试必问 20 道设计模式面试题&#xff08;二&#xff09;-CSDN博客 五、什么是建造者模式&#xff08;Builder Pattern&#xff09;&#xff1f;它解决了什么问题&#xff1f; 建造者模式&#xff08;Builder Pattern&am…

c语言---循环 、判断基础知识详解

if语句 else离最近的if语句结合。 if语句题目 //1. 判断一个数是否为奇数 //2. 输出1 - 100之间的奇数 #include <stdio.h> int main() {int n 0;scanf("%d", &n);if (n % 2){printf("奇数\n");}else{printf("不是奇数\n"…

[C#]使用深度学习算法opencvsharp部署RecRecNet广角图像畸变矫正校正摄像广角镜头畸变图像

【论文地址】 https://arxiv.org/abs/2301.01661 【训练源码】 https://github.com/KangLiao929/RecRecNet 【参考源码】 https://github.com/hpc203/recrecnet-opencv-dnn 【算法介绍】 广角镜头在VR技术中显示出诱人的应用&#xff0c;但它会在捕获的图像中引入严重的径…

镜头跟踪的两种方法

方法一 (1) 原理&#xff1a;使球与摄像机保持固定的角度和距离 (2) 给Main Camera添加CamraCtrller.cs组件 public Transform Player;//小球的Transformprivate Vector3 offset;//小球与摄像机位置的偏移&#xff08;在三轴上的距离&#xff09;void Start(){offset Playe…

深度神经网络——什么是降维?

引言 什么是降维&#xff1f; 降维是用于降低数据集维度的过程&#xff0c;采用许多特征并将它们表示为更少的特征。 例如&#xff0c;降维可用于将二十个特征的数据集减少到仅有几个特征。 降维通常用于无监督学习任务 降维是一个用于降低数据集维度的过程&#xff0c;采用许…

【中文】PDF文档切分\切片\拆分最优方案-数据预处理阶段,为后续导入RAG向量数据库和ES数据库实现双路召回

目的 将PDF文档拆开&#xff0c;拆开后每个数据是文档中的某一段&#xff0c;目的是保证每条数据都有较完整的语义&#xff0c;并且长度不会太长 项目自述 看了很多切分项目&#xff0c;包括langchain、Langchain-Chatchat、、Chinese-LangChain、LangChain-ChatGLM-Webui、…

c语言指针经典笔试题

指针的笔试题目 //深度讨论数组名 int main1() {int a[] { 1,2,3,4 };printf("%d\n", sizeof(a)); //sizeof内部出现数组名代表是整个数组的大小 //16printf("%d\n", sizeof(a 0)); //首元素地址0还是首元素地址 4/8printf("%d\n", sizeof(*…

TestProject Python SDK入门

2024软件测试面试刷题&#xff0c;这个小程序&#xff08;永久刷题&#xff09;&#xff0c;靠它快速找到工作了&#xff01;&#xff08;刷题APP的天花板&#xff09;-CSDN博客跳槽涨薪的朋友们有福了&#xff0c;今天给大家推荐一个软件测试面试的刷题小程序。​编辑https://…

阻力支撑相对强度(RSRS)选股系列报告之三

https://download.csdn.net/download/SuiZuoZhuLiu/89447699?spm1001.2014.3001.5503https://download.csdn.net/download/SuiZuoZhuLiu/89447699?spm1001.2014.3001.5503

《维汉翻译通》App一款免费的维吾尔语翻译工具,也是新疆人学习中文的利器!维吾尔文OCR识别提取文字神器,功能丰富、界面简洁无广告、操作简单!

免费翻译&#xff0c;无界限沟通 《维汉翻译通》App提供免费的短文本翻译服务&#xff0c;无论是日常对话还是专业术语&#xff0c;都能迅速给出准确的翻译结果。维吾尔语免费翻译工具的加入&#xff0c;更是让这款App成为学习维吾尔语的必备应用。 智能OCR&#xff0c;文字识…

#QT(QCharts绘制曲线)

1.IDE&#xff1a;QTCreator 2.实验&#xff1a;绘制曲线图表 3.记录&#xff1a; 4.代码 pro QT core gui #加入以下代码引入charts QT charts greaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c17# You can make your code fail to compile if it uses depre…

关于数据库导入导出excel后出现前面的0消失或者有-的变成了日期

1、数据导出0消失 在数据库导出excel后&#xff0c;发现前面的数字0都消失了&#xff0c;怎么办呢&#xff0c;将需要转换的列转成字符串在导出 2、数据导入时&#xff0c;excel的0消失 载excel中输入’00001’&#xff0c;发现变成了‘1’&#xff0c;选中列点击右键–>设置…

python写一个ai agent对接仓库管理系统的业务流程

要实现一个AI agent对接仓库管理系统的业务流程&#xff0c;首先需要了解仓库管理系统的具体业务流程和需求。以下是一个简单的示例&#xff0c;用Python编写一个AI agent&#xff0c;用于对接仓库管理系统的业务流程。 1. 首先&#xff0c;定义一个类WarehouseManager&#xf…

场景设计题

为什么要这样分表&#xff1f;跨库join如何解决&#xff1f;数据量突增怎么解决&#xff1f; 如何解决线上问题&#xff1f;cpu狂飙怎么办&#xff1f;频繁minor gc怎么办&#xff1f;可能造成的原因是什么&#xff1f;如何避免&#xff1f; 数据库 隔离级别&#xff0c;怎么实…

npm发布自己的插件包:新手教程

npm&#xff08;Node Package Manager&#xff09;是Node.js的包管理工具&#xff0c;广泛用于JavaScript项目中。本文将为你介绍如何从零开始发布一个npm插件包。 前提条件 在开始之前&#xff0c;你需要确保以下几点&#xff1a; 安装Node.js和npm&#xff1a;你可以在No…

C++ 二叉搜索树【面试】

以下是一个简单的二叉搜索树实现&#xff0c;包括插入和查找操作的示例代码&#xff1a; #include <iostream>// 定义二叉搜索树的节点结构 struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} };//…

Spring Boot定时任务编程指南:如何创建和配置周期性任务

&#x1f341; 作者&#xff1a;知识浅谈&#xff0c;CSDN签约讲师&#xff0c;CSDN博客专家&#xff0c;华为云云享专家&#xff0c;阿里云专家博主 &#x1f4cc; 擅长领域&#xff1a;全栈工程师、爬虫、ACM算法 &#x1f525; 微信&#xff1a;zsqtcyw 联系我领取学习资料 …

基于Langchain构建本地大型语言模型(LLM)问答系统的经验分享

基于Langchain构建本地大型语言模型&#xff08;LLM&#xff09;问答系统的经验分享 https://download.csdn.net/download/xziyuan/89334371?spm1001.2101.3001.9500 最近&#xff0c;我一直在探索如何利用Langchain来构建一个本地的大型语言模型问答系统。在这个过程中&…

消息中间件比较:Redis,Kafka和RabbitMQ

对微服务使用异步通信时&#xff0c;通常使用消息代理。代理确保不同微服务之间的通信可靠且稳定&#xff0c;消息在系统内得到管理和监控&#xff0c;并且消息不会丢失。您可以从几个消息代理中进行选择&#xff0c;它们的规模和数据功能各不相同。这篇博文将比较三种最受欢迎…

不知道密码,一样能卸载瑞星esm防病毒终端安全防护系统

离开单位后试图卸载瑞星的时候却发现还需要密码&#xff0c;真是烦死了。研究了几分钟后找到了完美卸载方法。 首先&#xff0c;让我们请出老流氓360安全卫士&#xff0c;下载好它&#xff0c;让右键菜单出现使用 360强力删除这一选项。 之后&#xff0c;进入安全模式&#x…