news 2026/5/9 13:01:53

贪心算法简介

作者头像

张小明

前端开发工程师

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/9 1:10:11

yaml-cpp内存优化策略深度解析:从性能瓶颈到高效解决方案

yaml-cpp内存优化策略深度解析&#xff1a;从性能瓶颈到高效解决方案 【免费下载链接】yaml-cpp A YAML parser and emitter in C 项目地址: https://gitcode.com/gh_mirrors/ya/yaml-cpp 在C项目开发中&#xff0c;YAML配置文件的解析性能往往成为系统瓶颈&#xff0c;…

作者头像 李华
网站建设 2026/5/9 0:50:00

JSP如何结合多线程技术提升大文件上传效率?

大文件传输解决方案技术提案 项目背景与需求分析 作为山东某软件公司项目负责人&#xff0c;我公司需要为大文件传输提供一套完整的解决方案。经过详细的需求梳理&#xff0c;总结出以下几个关键需求点&#xff1a; 大文件传输能力&#xff1a;支持单文件100GB左右的上传下载…

作者头像 李华
网站建设 2026/5/9 2:35:47

ChanlunX缠论插件:让技术分析变得简单直观的智能助手

你是否曾在K线图中迷失方向&#xff1f;面对密密麻麻的K线图&#xff0c;是否感到无从下手&#xff1f;&#x1f914; 今天&#xff0c;让我们一起来了解ChanlunX缠论插件如何通过智能化算法&#xff0c;将复杂的技术分析变得简单直观。 【免费下载链接】ChanlunX 缠中说禅炒股…

作者头像 李华
网站建设 2026/5/9 2:36:09

光伏储能系统搭上虚拟同步发电机(VSG)这趟车,简直像是给新能源装了个智能大脑。今儿咱们直接上硬菜,拆解这个能跑出完美波形的并网仿真模型

光伏储能虚拟同步发电机VSG并网仿真模型C 光伏阵列搭建的光伏电池模型 光伏&#xff1a;采用扰动观察法最大功率点MPPT跟踪控制 储能&#xff1a;蓄电池充放电控制&#xff0c;双向Buck/Boost变换器&#xff0c;采用直流母线电压外环控制稳定直流母线电压&#xff0c;电池电流内…

作者头像 李华
网站建设 2026/5/9 1:10:21

在一台电脑上生成多个ssh公钥并添加到不同GitHub账号

在同一台电脑上操作多个 GitHub 账号的仓库 为每个账号生成独立的 SSH 密钥对&#xff0c;然后通过配置来区分使用。 步骤&#xff1a;为每个账号生成独立的 SSH 密钥&#xff1a; ssh-keygen -t ed25519 -C "your-email1example.com" -f ~/.ssh/id_ed25519_personal…

作者头像 李华