news 2026/9/9 20:26:01

贪心算法简介

作者头像

张小明

前端开发工程师

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/9/8 12:17:44

告别面经焦虑!接口测试核心面试题一次搞定

&#xff08;个人见解&#xff0c;仅供参考&#xff09; &#x1f525;个人主页&#xff1a;寻星探路 &#x1f3ac;作者简介&#xff1a;Java研发方向学习者 &#x1f4d6;个人专栏&#xff1a;JAVA&#xff08;SE&#xff09;----如此简单 从青铜到王者&#xff0c;就差这讲数…

作者头像 李华
网站建设 2026/9/9 13:29:08

OrcaSlicer依赖库实战构建指南:从源码到高性能G代码生成器

OrcaSlicer依赖库实战构建指南&#xff1a;从源码到高性能G代码生成器 【免费下载链接】OrcaSlicer G-code generator for 3D printers (Bambu, Prusa, Voron, VzBot, RatRig, Creality, etc.) 项目地址: https://gitcode.com/GitHub_Trending/orc/OrcaSlicer 作为一款支…

作者头像 李华
网站建设 2026/9/7 3:19:37

全网最全 Cursor 配置指南:从入门到高效工作流!建议收藏

全网最全 Cursor 配置指南&#xff1a;从入门到高效工作流&#xff01;建议收藏&#xff08;2025年12月最新版&#xff09; Cursor 是2025年最强大的AI代码编辑器&#xff0c;基于VS Code构建&#xff0c;深度集成Claude 3.5 Sonnet、GPT-4o等模型。正确配置能让你的开发效率提…

作者头像 李华
网站建设 2026/9/8 10:46:15

一文了解AOSP是什么?

一文了解 AOSP 是什么&#xff1f; AOSP&#xff08;Android Open Source Project&#xff0c;Android 开源项目&#xff09;是 Android 操作系统的核心开源基础&#xff0c;由 Google 主导维护。它是 Android 的“纯净版”源代码&#xff0c;任何人都可以免费下载、修改和构建…

作者头像 李华
网站建设 2026/9/8 6:43:13

盘点全球领先照明企业:技术优势与市场特色全解析

鉴于LED照明行业处于高速发展的状况下&#xff0c;许多厂家依据各自的技术积累以及市场定位&#xff0c;为全世界用户给予了丰富多样的照明解决办法。这篇文章的意图就是梳理与介绍行业里部分具有代表性最为领先的企业&#xff0c;经由剖析它们的发展进程、技术特性以及核心优势…

作者头像 李华
网站建设 2026/9/9 11:21:45

日拱一卒之最小二乘法

日拱一卒之最小二乘法 由于最小二乘法在最近出现的频率比较高&#xff0c;所以单独拎出来研究研究&#xff0c;b站上有个几何的解读&#xff0c;虽然感觉弄得不错&#xff0c;但是还是觉得有点深了&#xff0c;而且有点快&#xff0c;各种公式的嵌套看的有点乱&#xff0c;于是…

作者头像 李华