news 2026/5/13 5:48:51

贪心算法简介

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
贪心算法简介

贪心算法简介

贪心算法是一种在每一步选择中都采取当前状态下最优(即最有利)的选择,从而试图获得结果是全局最优的算法。它并不保证在所有情况下都能得到全局最优解,但适用于具有“贪心选择性质”的问题,即局部最优解能导致全局最优解。

例题1:盛最多水的容器

问题描述
给定一个长度为n的整数数组height,每个元素表示垂直线的长度。找出两条线与 x 轴共同构成的容器可以容纳最多的水。容器不能倾斜。

思路讲解
使用双指针法,从数组两端开始。容量由指针间距和较短线的高度决定。贪心策略:每次移动较短线的指针,因为移动较长线不会增加容量(宽度减小,高度受限于短线)。重复直到指针相遇,记录最大容量。

C语言代码实现

intmaxArea(int*height,intheightSize){intleft=0,right=heightSize-1;intmax_water=0;while(left<right){inth=height[left]<height[right]?height[left]:height[right];intwater=h*(right-left);if(water>max_water)max_water=water;if(height[left]<height[right]){left++;}else{right--;}}returnmax_water;}

leetcode原题

例题2:最长回文串

问题描述
给定一个字符串s,用其中的字符构造最长的回文串,返回最大长度。注意:字符可以任意顺序排列,但回文串需对称。

思路讲解
统计每个字符的出现频率。贪心策略:对于每个字符,如果出现偶数次,全部使用;如果出现奇数次,使用偶数部分(即减1),并标记存在奇数字符。最后,如果有奇数字符,长度加1(中心可放一个奇数字符)。

C语言代码实现

intlongestPalindrome(char*s){intcount[128]={0};intlen=strlen(s);for(inti=0;i<len;i++){count[(int)s[i]]++;}intmaxlen=0;inthasodd=0;for(inti=0;i<128;i++){if(count[i]%2==0){maxlen+=count[i];}else{maxlen+=count[i]-1;hasodd=1;}}if(hasodd)maxlen+=1;returnmaxlen;}

leetcode原题

总结

贪心算法适用于局部最优能导致全局最优的问题,如以上例题。在实际应用中,需验证问题是否具有贪心性质,否则可能需动态规划等其他方法。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 2:12:58

WAN2.2-14B-Rapid-AllInOne实战指南:从零到精通的完整视频生成方案

还在为复杂的视频制作流程而苦恼吗&#xff1f;想要快速上手AI视频生成却不知从何开始&#xff1f;WAN2.2-14B-Rapid-AllInOne作为新一代全能视频生成模型&#xff0c;将为你提供一站式的解决方案。这款视频生成模型通过创新的技术整合&#xff0c;让创作变得前所未有的简单高效…

作者头像 李华
网站建设 2026/5/11 7:43:21

如何利用JSP实现100万文件的批量上传?

大文件传输系统解决方案 作为江西某软件公司的项目负责人&#xff0c;面对公司产品部门提出的高要求大文件传输功能需求&#xff0c;我进行了全面的技术调研和方案设计。以下是我们针对该需求的详细解决方案。 需求分析与挑战 核心需求概述 大文件传输&#xff1a;支持单文…

作者头像 李华
网站建设 2026/5/11 19:26:48

雷达原理笔记 第一章 雷达的基本原理

雷达的工作频率应用与发展一、工作频率二、雷达的应用是军用&#xff0c;第二个方面是什么是民用。那么军用里面呢&#xff0c;有各种各样的雷达。我们举几个典型的这个雷达的这个名称预警雷达预警雷达的最大作用距离在几千公里就是说预警雷达能够探测到数千公里以外的目标&…

作者头像 李华
网站建设 2026/5/8 15:26:15

Comtos Linux 追求的哲学

【Comtos Linux 追求的哲学】哲学&#xff0c;以思辨探索世界的普遍本质与意义‌。 科学&#xff0c;以实证法研究具体领域的规律。 技术&#xff0c;旨在改造世界、解决实际问题。在计算机操作系统领域&#xff0c;科学与技术光芒彰显。而哲学之光则暗淡。科学与技术指导着事物…

作者头像 李华
网站建设 2026/5/11 7:08:33

Nginx核心架构设计

目录 1 Nginx核心架构 2 架构组件和工作原理 3 代理原理 1 Nginx核心架构 2 架构组件和工作原理 3 代理原理

作者头像 李华
网站建设 2026/5/2 16:42:48

《Effective C++》电子书免费分享

Effective C 中文版第三版 高清PDF资料免费分享&#xff0c;只可用于学习使用链接&#xff1a;https://pan.baidu.com/s/1ZbIFI6kAhqnnOHVit7BNdQ?pwdN858觉得有用可以点个赞哦

作者头像 李华