贪心算法简介(greed)

ops/2025/3/16 11:57:07/

前言:

贪心算法(Greedy Algorithm)是一种在每个决策阶段都选择当前最优解的算法策略,通过局部最优的累积来寻求全局最优解。其本质是"短视"策略,不回溯已做选择。

什么是贪心、如何来理解贪心(个人对贪心的理解)

前言对贪心是一种概念的回答。接下来就了解一下自己对贪心的理解,如果学习算法的化建议优先学习动态规划动态规划相对于其他算法来说很简单。但是,贪心算法动态规划不同,非常难,贪心讲究策略,每一道贪心有每一道贪心题解题的策略

什么是贪心算法

解决问题的策略,由局部最优到全局最优,把解决问题的过程分为若干步,在解决每一步的时候,都选择当前看起来最优的解法,贪心就体现在最优上,希望得到全局最优,但只是看起来最优,在每一步的过程中都选择当前看起来最优的策略(找零问题),简单来说就是只考虑眼前的利益,目光不长远。

贪心算法的特点:

贪心策略的提出,可以看出贪心策略的提出是没有标准模板的,可能换一道贪心题其贪心策略也就不一样了,这也就是贪心难的地方了,可能每一道贪心题的贪心策略都是不同的。因为贪心是数目寸光的,所以就要考虑到贪心策略的正确性有可能贪心策略是一个错误的方法,所以正确的贪心策略是需要严格证明的,说到贪心策略的证明,在数学上你见到的还是你没有见到的证明方法都可以拿来证明。

找零问题

#include <vector>
#include <algorithm>
using namespace std;vector<int> greedyCoinChange(int amount, vector<int> coins) {sort(coins.rbegin(), coins.rend()); // 降序排列vector<int> result;for (int coin : coins) {while (amount >= coin) {result.push_back(coin);amount -= coin;}}return (amount == 0) ? result : vector<int>(); // 返回空表示无解
}

活动选择

struct Activity {int start, end;
};vector<Activity> selectActivities(vector<Activity> activities) {sort(activities.begin(), activities.end(), [](const auto& a, const auto& b){ return a.end < b.end; });vector<Activity> selected;int lastEnd = -1;for (auto& act : activities) {if (act.start >= lastEnd) {selected.push_back(act);lastEnd = act.end;}}return selected;
}


http://www.ppmy.cn/ops/166196.html

相关文章

基于jspm校园安全管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着信息时代的来临&#xff0c;过去信息校园安全管理方式的缺点逐渐暴露&#xff0c;本次对过去的校园安全管理方式的缺点进行分析&#xff0c;采取计算机方式构建校园安全管理系统。本文通过阅读相关文献&#xff0c;研究国内外相关技术&#xff0c;提出了一种集安全教…

【技术干货】三大常见网络攻击类型详解:DDoS/XSS/中间人攻击,原理、危害及防御方案

1. DDoS攻击 1.1 什么是DDoS攻击? DDoS(Distributed Denial of Service,分布式拒绝服务攻击)通过操控大量“僵尸设备”(Botnet)向目标服务器发送海量请求,耗尽服务器资源(带宽、CPU、内存),导致正常用户无法访问服务。 1.2 攻击原理与分类 流量型攻击:如UDP洪水、…

C语言的机器学习

C语言的机器学习 前言 机器学习&#xff0c;是人工智能领域的一个重要分支&#xff0c;它使计算机能够通过经验自动改进性能。在过去的几十年里&#xff0c;机器学习技术得到了广泛的应用&#xff0c;从自然语言处理到计算机视觉&#xff0c;再到推荐系统等&#xff0c;几乎无…

蓝耘MaaS平台:阿里QWQ应用拓展与调参实践

摘要&#xff1a;本文深入探讨了蓝耘MaaS平台与阿里QWQ模型的结合&#xff0c;从平台架构、模型特点到应用拓展和调参实践进行了全面分析。蓝耘平台凭借其强大的算力支持、弹性资源调度和全栈服务&#xff0c;为QWQ模型的高效部署提供了理想环境。通过细化语义描述、调整推理参…

虚拟健身教练小程序:AI动作识别与个性化训练计划生成

虚拟健身教练小程序&#xff1a;AI动作识别与个性化训练计划生成 在数字化浪潮的推动下&#xff0c;健康与健身领域正经历一场深刻的变革。人们越来越追求高效、便捷且个性化的健身方式&#xff0c;而“虚拟健身教练”这一概念应运而生。通过结合人工智能&#xff08;AI&#…

phpstudy+phpstorm+xdebug【学习笔记】

配置PHPStudy 配置PHPSTORM phpstorm选择PHP版本 配置DEBUG 设置服务器 编辑配置 学习参考链接&#xff1a;&#xff1a;https://blog.csdn.net/m0_60571842/article/details/133246064

饮食调治痉挛性斜颈,开启健康生活

痉挛性斜颈作为一种累及颈部肌群的疾病&#xff0c;会给患者带来诸多不适。在积极治疗的同时&#xff0c;健康饮食也能在一定程度上辅助改善病情&#xff0c;提升患者生活质量。那么&#xff0c;适合痉挛性斜颈患者的健康饮食方案是怎样的呢&#xff1f; 蛋白质的充足摄取至关重…

如何用正则表达式爬取古诗文网中的数据(python爬虫)

一、了解正则表达式的基本内容&#xff1a; 什么是正则表达式 正则表达式&#xff08;Regular Expression&#xff0c;简称 regex&#xff09;是一种用于匹配字符串的模式。它通过特定的语法规则&#xff0c;可以高效地搜索、替换和提取文本中的特定内容。正则表达式广泛应用于…