当前位置: 首页 > news >正文

【贪心算法】day6

📝前言说明:

  • 本专栏主要记录本人的贪心算法学习以及LeetCode刷题记录,按专题划分
  • 每题主要记录:(1)本人解法 + 本人屎山代码;(2)优质解法 + 优质代码;(3)精益求精,更好的解法和独特的思想(如果有的话);(4)贪心策略正确性的 “证明”
  • 文章中的理解仅为个人理解。如有错误,感谢纠错

🎬个人简介:努力学习ing
📋本专栏:C++刷题专栏
📋其他专栏:C语言入门基础,python入门基础,C++学习笔记,Linux
🎀CSDN主页 愚润泽

你可以点击下方链接,进行其他贪心算法题目的学习

点击链接开始学习
贪心day1贪心day2
贪心day3贪心day4
贪心day5贪心day6
贪心day7贪心day8
贪心day9贪心day10

也可以点击下面连接,学习其他算法

点击链接开始学习
优选专题动态规划
递归、搜索与回溯贪心算法

题目

  • 455. 分发饼干
    • 个人解
  • 553. 最优除法
    • 优质解
  • 45. 跳跃游戏 II
    • 优质解


455. 分发饼干

题目链接:https://leetcode.cn/problems/assign-cookies/description/
在这里插入图片描述

个人解

思路:

  • 从低到高满足

屎山代码:

class Solution {
public:int findContentChildren(vector<int>& g, vector<int>& s) {ranges::sort(g); ranges::sort(s);int n = g.size(), m = s.size();int st = m > n ? m - n: 0;int ans = 0;for(int i = 0, j = st; j < m; j++) // 遍历每一块饼干{if(s[j] >= g[i]){ans++;i++; // 下一个孩子}}return ans;}
};

时间复杂度:O(nlogn+mlogm)O(nlogn + mlogm)O(nlogn+mlogm)
空间复杂度:O(logn+logm)O(logn + logm)O(logn+logm)


553. 最优除法

题目链接:https://leetcode.cn/problems/optimal-division/description/
在这里插入图片描述


优质解

思路:

  • 我们观察整个表达式,最后一定会化成:x / y的形式
  • 易知:第一个数一定位于分子,第二个数一定位于分母
  • 只要让分子最大,则得到的结果一定是最大的,即:把其他数都通过加()移动至分子(因为题目条件nums[i] >= 2

代码:

class Solution {
public:string optimalDivision(vector<int>& nums) {int n = nums.size();if(n == 1) return to_string(nums[0]);else if(n == 2) return to_string(nums[0]) + "/" + to_string(nums[1]);string ans = to_string(nums[0]) + "/(";for(int i = 1; i < n - 1; i++)ans += to_string(nums[i]) + "/";ans += to_string(nums[n - 1]) + ")";return ans;}
};

45. 跳跃游戏 II

题目链接:https://leetcode.cn/problems/jump-game-ii/description/
在这里插入图片描述


优质解

思路:

  • 利用动态规划的思想 + 层序遍历
    • 动态规划:依次记录跳跃了多少步
    • 层序遍历:能跳跃到的地方作为下一次的起点,并且在跳跃过程中“剔除”次数多的

代码:

class Solution {
public:int jump(vector<int>& nums) {int n = nums.size();int left = 0, right = 0; // 标识该层的首尾位置int Maxpos = 0; // 记录下一次能跳跃到的最远位置int ans = 0;while(Maxpos < n - 1) // 如果已经跳跃到最后的位置了{for(int i = left; i <= right; i++)Maxpos = max(Maxpos, i + nums[i]);left = right + 1;right = Maxpos;ans++;}return ans;}
};

时间复杂度:O(n)O(n)O(n)
空间复杂度:O(1)O(1)O(1)


🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!


文章转载自:

http://a4hi3r5Q.dknLf.cn
http://Iwm93OjN.dknLf.cn
http://jbOwN6Oh.dknLf.cn
http://ei5sicbM.dknLf.cn
http://K8Elye0M.dknLf.cn
http://qKNzfdLH.dknLf.cn
http://XgykR0y9.dknLf.cn
http://piEv9COr.dknLf.cn
http://cIQavCh0.dknLf.cn
http://wqNAY1zU.dknLf.cn
http://GGCWhy8m.dknLf.cn
http://UZ9Xtmqk.dknLf.cn
http://RWqLpPo7.dknLf.cn
http://qsAyBiBd.dknLf.cn
http://lEfiwOaF.dknLf.cn
http://fS8fMxTs.dknLf.cn
http://MJiYi1Dc.dknLf.cn
http://TyFXV2mx.dknLf.cn
http://uS5f7tro.dknLf.cn
http://X13W83CU.dknLf.cn
http://BWPk7U6j.dknLf.cn
http://6vMmSht0.dknLf.cn
http://gHQXEPdD.dknLf.cn
http://qLz2RXwd.dknLf.cn
http://bXShFpXq.dknLf.cn
http://6yf5GHdJ.dknLf.cn
http://1BFX5HEB.dknLf.cn
http://TRZgNhGT.dknLf.cn
http://ahHRGrHz.dknLf.cn
http://mUVnrM7T.dknLf.cn
http://www.dtcms.com/a/371480.html

相关文章:

  • CSS(展示效果)
  • 基于原神游戏物品系统小demo制作思路
  • docker,本地目录挂载
  • The Xilinx 7 series FPGAs 设计PCB 该选择绑定哪个bank引脚,约束引脚时如何定义引脚电平标准?
  • 算法:选择排序+堆排序
  • UE4/UE5反射系统动态注册机制解析
  • 【开题答辩全过程】以 汽车知名品牌信息管理系统为例,包含答辩的问题和答案
  • rabbitmq 的 TTL
  • Linux内核网络的连接跟踪conntrack简单分析
  • Java Stream流:从入门到精通
  • java常见面试题杂记
  • SAP匈牙利新闻
  • Java全栈工程师的面试实战:从基础到高阶技术解析
  • 计算机毕设选题:基于Python+Django的B站数据分析系统的设计与实现【源码+文档+调试】
  • 【嵌入式】【树莓派】【大疆PSDK】用树莓派4B开发大疆行业无人机应用系统小结-【硬件篇】
  • 深度学习——自然语言处理NLP
  • 灾难性遗忘:神经网络持续学习的核心挑战与解决方案
  • bug | 事务粒度不能太大,含demo
  • 如何建立针对 .NET Core web 程序的线程池的长期监控
  • 41个开源大语言模型基准测试报告
  • unsloth 笔记:从最近的检查点继续微调
  • 区域导航系统 | 印度区域卫星导航系统(IRNSS/NavIC)深度解析
  • Linux服务器资源自动监控与报警脚本详解
  • 社交新零售时代本地化微商的发展路径研究——基于开源AI智能名片链动2+1模式S2B2C商城小程序源的创新实践
  • Tailwind CSS v4 终极指南:体验 Rust 驱动的闪电般性能与现代化 CSS 工作流
  • 模块--红外跟随避障模块
  • 使用MQTT.fx和ESP32连接Onenet平台
  • 功率器件固晶挑战:抗高温翘曲治具提升IGBT焊接强度30%
  • Text2Sql.Net架构深度解析:从自然语言到SQL的智能转换之道
  • UE5 基础应用 —— 10 - 控制台命令