IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 基础贪心问题总结 -> 正文阅读

[数据结构与算法]基础贪心问题总结

贪心,就是取局部最优解,通常贪心问题能获得最优解的情况都是当前局部最优不会影响到全局最优,或者可以扩大到全局最优,如果从全局的角度来看,当前局部最优的选择策略是错误的,那么贪心算法就不适用了

贪心问题就是不考虑全局,尽可能的选择某种属性的物品,只有当局部最优可以扩展到全局最优的时候,贪心的策略才是正确的

主要有以下几种类型

1.贪心+...算法

贪心作为一个经典算法,经常和其他的算法一起考察,其中较为重要的是贪心+排序和贪心+模拟

贪心+排序

这里的排序,一般都是发现题目中所有元素的共同性,运用这个属性进行排序

普通排序????????跳跳! - 洛谷

? ? ? ? ? ? ? ? ? ? ??[NOIP2008 普及组] 排座椅 - 洛谷

需要推公式的排序? 见下

有关区间问题的排序? 见下

贪心+模拟

根据题目给的要求,模拟,并作出贪心的选择,一般比较复杂,需要考虑多种情况,最好分析结束再编程

P1016 [NOIP1999 提高组] 旅行家的预算(贪心+模拟)_qq12323qweeqwe的博客-CSDN博客

双指针+贪心

?双指针+贪心会应用到双指针各种性质,做出贪心的选择并不难,难的是运用双指针算法

455. 分发饼干_qq12323qweeqwe的博客-CSDN博客

最大子段和(贪心,一维,二维)_qq12323qweeqwe的博客-CSDN博客

763. 划分字母区间(滑动窗口,贪心)_qq12323qweeqwe的博客-CSDN博客

前缀和差分贪心

前缀和总结_qq12323qweeqwe的博客-CSDN博客

差分总结(一阶,二阶)_qq12323qweeqwe的博客-CSDN博客

2.区间问题

区间问题是贪心问题的经典题型?

区间问题,特别要在意的是排序的选择

左端点升序,左端点降序,右端点升序,右端点降序

尽管名字相似,但在排序后,他们可以达到的效果是截然不同的

1.左端点升序

?左端点升序,左端点越小的在数组前面

左端点升序的特点是,只按照左端点为第一关键字升序,那么他后面的数组元素有可能会比他完全小(如图被完全包含),而并不会比他完全大,这个性质与右端点升序是相反的

2.右端点升序?

右端点升序,右端点越小的在数组前面

?如图,和刚才的左端点升序完全相反,后面的元素有可能比他完全大,而不会完全小,这两种性质在贪心问题中经常遇到

同理,右端点降序是只有完全小,没有完全大

左端点降序是只有完全大,没有完全小

区间选点问题

模板题:905 区间选点_qq12323qweeqwe的博客-CSDN博客

应用题:

简单? ? ??????????452. 用最少数量的箭引爆气球

中等? ? ? ? ? ? ??110. 防晒(区间选点,贪心)_qq12323qweeqwe的博客-CSDN博客

? ? ? ? ? ? ? ? ? ? ?112. 雷达设备_qq12323qweeqwe的博客-CSDN博客

进阶? ? ? ? ? ? ??127. 任务(贪心,二维区间选点问题)_qq12323qweeqwe的博客-CSDN博客

最大不相交区间

最大不相交区间类似于区间选点问题

模板题? ? 908. 最大不相交区间数量_qq12323qweeqwe的博客-CSDN博客

简单? ? ? ??无重叠区间??????

leetcode 56. 合并区间(区间,贪心)_qq12323qweeqwe的博客-CSDN博客

? ? ? ? ? ? ? ?

区间分组

区间分组和区间选点问题是区间问题的常见题型,区间分组问题使用了最小堆来优化,可以达到O(nlogn)的时间复杂度

模板题? ? ? ? 906. 区间分组_qq12323qweeqwe的博客-CSDN博客

中等:? ? ? ??111. 畜栏预定(贪心,区间分组)_qq12323qweeqwe的博客-CSDN博客

????????????????? ?P4447 [AHOI2018初中组]分组_qq12323qweeqwe的博客-CSDN博客

区间覆盖

模板题:907. 区间覆盖_qq12323qweeqwe的博客-CSDN博客

不等式

在贪心题目中,常常需要找出某种性质进行排序,不等式就是其中的一种性质

?排序不等式

913. 排队打水(贪心,排列不等式)_qq12323qweeqwe的博客-CSDN博客

均值不等式

1235. 付账问题(贪心,均值不等式)_qq12323qweeqwe的博客-CSDN博客

绝对值不等式

模板题:104. 货仓选址_qq12323qweeqwe的博客-CSDN博客

进阶题:122. 糖果传递_qq12323qweeqwe的博客-CSDN博客

字符串贪心

字符串贪心就是对字符串进行的一系列贪心操作

模板题:best cow line(字符串贪心)_qq12323qweeqwe的博客-CSDN博客e

简单:179. 最大数_qq12323qweeqwe的博客-CSDN博客

中等:1239. 乘积最大(字符串贪心)_qq12323qweeqwe的博客-CSDN博客

推公式

推公式即递推不等式,通过递推发现邻项的性质,常用邻项交换

耍杂技的牛
P1080 国王游戏(c++)_qq12323qweeqwe的博客-CSDN博客_c++国王游戏

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-01-03 16:22:02  更:2022-01-03 16:24:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 17:35:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码