【Day23 LeetCode】贪心算法题

devtools/2025/1/22 11:25:49/

一、贪心算法

贪心没有套路,只有碰运气(bushi),举反例看看是否可行,(运气好)刚好贪心策略的局部最优就是全局最优。

1、leetcode.cn/problems/assign-cookies/description/" rel="nofollow">分发饼干 455

思路:按照孩子的胃口从小到大的顺序依次满足每个孩子,对于每个孩子,应该选择可以满足这个孩子的胃口且尺寸最小的饼干

class Solution {
public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(), g.end());sort(s.begin(), s.end());int d1 = 0, d2 = 0;int cnt = 0;while(d2 < s.size() && d1 < g.size()){if(g[d1] <= s[d2++]){++cnt;++d1;}}return cnt;}
};

2、leetcode.cn/problems/wiggle-subsequence/description/" rel="nofollow">摆动序列 376

贪心:删除单调坡度上的节点,这个坡度就可以有两个局部峰值。所以求长度的问题变成求峰值个数。

class Solution {
public:int wiggleMaxLength(vector<int>& nums) {int cur = 0, pre = 0;int ans = 1;for(int i=0; i<nums.size()-1; ++i){cur = nums[i+1] - nums[i]; // 当前的差值// 差值正负出现变化-->峰值出现if((cur > 0 && pre <= 0) || (cur < 0 && pre >= 0)){++ans;pre = cur; // 只在摆动的时候更新}}return ans;}
};

3、leetcode.cn/problems/maximum-subarray/description/" rel="nofollow">最大子序和 53

思路:负的子序和只会拉低最大子序和

class Solution {
public:int maxSubArray(vector<int>& nums) {int ans = INT_MIN, s = 0;for(int i=0; i<nums.size(); ++i){s += nums[i];if(s > ans)ans = s;if(s < 0)s = 0;}return ans;}
};

二、写在后面

贪心得多练。今天的摆动序列一开始没想出来。


http://www.ppmy.cn/devtools/152584.html

相关文章

C# 以管理员方式启动程序全解析

引言 在 Windows 应用程序开发的领域中&#xff0c;C# 语言凭借其强大的功能和广泛的适用性&#xff0c;被众多开发者所青睐。然而&#xff0c;在实际的开发过程里&#xff0c;我们常常会遭遇这样的情况&#xff1a;程序需要访问特定的系统资源&#xff0c;像是系统文件夹、注…

springboot基于微信小程序的健康管理系统

Spring Boot 基于微信小程序的健康管理系统 在现代快节奏生活中&#xff0c;人们愈发关注自身健康&#xff0c;Spring Boot 基于微信小程序的健康管理系统应运而生&#xff0c;它将便捷的移动端体验与强大的后端技术相结合&#xff0c;为用户打造了个性化、全方位的健康管理助手…

MySql字段的值是以逗号隔开的另一个表的主键关联查询

查询sql SELECT s.student_id, s.name, c.name as course_name FROM student s INNER JOIN course c ON FIND_IN_SET(c.course_id, s.course_id) > 0 WHERE 1 1;相似sql -- 翻译&#xff08;需要带条件&#xff0c;可用于字典翻译&#xff0c;但条件需要注意唯一性&#…

`Port: Direct Attach Copper` 和 `Port: Twisted Pair`

目录标题 这些端口类型的来源结论1. **Intel Network Interface Cards (NICs)**2. **Broadcom / Avago Technologies**3. **Mellanox Technologies (现为 NVIDIA)**4. **Chelsio Communications**5. **Realtek**6. **Netgear / TP-Link / ASUS**总结 你提到的 Port: Direct Att…

pip 相关

一劳永逸法&#xff08;pip怎么样都用不了也更新不了&#xff09;&#xff1a; 重下python(卸载旧版本&#xff09;&#xff1a;请输入访问密码 密码&#xff1a;7598 各版本python都有&#xff0c;下3.10.10 python路径建立&#xff0c;pip无法访问方式&#xff1a; 访问pip要…

idea 如何安装 github copilot

idea 如何安装 github copilot 要在 IntelliJ IDEA 中安装 GitHub Copilot&#xff0c;可以按照以下步骤操作&#xff1a; 打开 IntelliJ IDEA: 启动 IntelliJ IDEA。 打开插件管理器: 点击菜单栏中的 File。 选择 Settings&#xff08;Windows/Linux&#xff09;或 Prefere…

微信小程序之 如何使用全局变量将openid传到其他页面

1、首先&#xff0c;创建全局变量&#xff1a; // app.js App({globalData:{openid:,zj_address:0}, ... }) 2、将openid的值赋给全局变量&#xff1a; ... success(response){console.log(获取到openid&#xff1a;,response.data.openid);that.globalData.openid respons…

2025-1-21 Newstar CTF web week1 wp

文章目录 week1headach3会赢吗智械危机 week1 headach3 根据提示&#xff0c;在页面的请求头里找到flag flag{You_Ar3_R3Ally_A_9ooD_d0ctor} 会赢吗 打开控制台&#xff0c;拿到第一部分flag 将地址栏改为提示&#xff0c;去到下一关 控制台调用函数&#xff0c;得到flag …