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

【代码随想录Day27】贪心算法Part01

理论基础

题目链接/文章讲解:代码随想录
视频讲解:贪心算法理论基础!_哔哩哔哩_bilibili

455.分发饼干

题目链接/文章讲解:代码随想录
视频讲解:贪心算法,你想先喂哪个小孩?| LeetCode:455.分发饼干_哔哩哔哩_bilibili

一开始使用了双重循环,时间复杂度为 ( O ( n × m ) ) (O(n \times m)) (O(n×m)),其中 ( n ) (n) (n)g 的长度, ( m ) (m) (m)s 的长度,会超出时间限制。我们可以通过使用双指针的方法将时间复杂度优化到 ( O ( n + m ) ) (O(n + m)) (O(n+m))

class Solution {public int findContentChildren(int[] g, int[] s) {// 首先对两个数组进行排序Arrays.sort(g);Arrays.sort(s);int count = 0;int i = 0; // 指向孩子的指针int j = 0; // 指向饼干的指针// 使用双指针遍历两个数组while (i < g.length && j < s.length) {if (s[j] >= g[i]) {// 如果当前饼干可以满足当前孩子,则计数加一,并且两个指针都向前移动count++;i++;j++;} else {// 如果当前饼干不能满足当前孩子,则只移动饼干的指针j++;}}return count;}
}

376. 摆动序列

题目链接/文章讲解:代码随想录
视频讲解:贪心算法,寻找摆动有细节!| LeetCode:376.摆动序列_哔哩哔哩_bilibili

class Solution {public int wiggleMaxLength(int[] nums) {if (nums.length < 2) {return nums.length;}int prevDiff = nums[1] - nums[0];int count = prevDiff != 0 ? 2 : 1; // 如果前两个数相同,则摆动序列长度为1,否则为2for (int i = 2; i < nums.length; i++) {int currDiff = nums[i] - nums[i - 1];if ((currDiff > 0 && prevDiff <= 0) || (currDiff < 0 && prevDiff >= 0)) {count++;prevDiff = currDiff;}}return count;}
}

53. 最大子序和

题目链接/文章讲解:代码随想录
视频讲解:贪心算法的巧妙需要慢慢体会!LeetCode:53. 最大子序和_哔哩哔哩_bilibili

class Solution {public int maxSubArray(int[] nums) {int maxSum = Integer.MIN_VALUE; // 初始化最大和为最小整数值int sum = 0; // 初始化当前子数组的和为0for (int i = 0; i < nums.length; i++) {sum += nums[i]; // 累加当前元素到当前子数组的和// 更新最大和if (sum > maxSum) {maxSum = sum;}// 如果当前子数组的和为负数,重置为0if (sum < 0) {sum = 0;}}return maxSum;}
}

http://www.mrgr.cn/news/35272.html

相关文章:

  • 免费送源码:Java+Springboot+MySQL Springboot多租户博客网站的设计 计算机毕业设计原创定制
  • SCUI Admin + Laravel 整合
  • 数据结构——排序(续集)
  • 【大数据测试HBase数据库 — 详细教程(含实例与监控调优)】
  • 2024 年Postman 如何安装汉化中文版?
  • 【C语言刷力扣】13.罗马数字转整数
  • 电商效果图渲染神器:轻松高效出图
  • gorm.io/sharding:改造,当查询条件中不包含分表键时,从自定义方法中获取对应的表进行查询
  • 【JVM】JVM执行流程和内存区域划分
  • 浅析Android中的View事件分发机制
  • 2024 年最新 Protobuf 结构化数据序列化和反序列化详细教程
  • 【alist】宝塔面板docker里的alist默认admin无法登录
  • 分享6个icon在线生成网站,支持AI生成
  • “被卷”还是“破卷”,咱有得选
  • 虚幻引擎的射线检测/射线追踪
  • 水墨风度——书圣故里书画名家晋京展亮相荣宝斋大厦
  • 【machine learning-17-分类(逻辑回归sigmod)】
  • YOLOX预测图片是无法保存
  • Vue|插件
  • `#include <vector>`
  • Unity图形用户界面!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。(万字解析)
  • 【C++】检测TCP链接超时——时间轮组件设计
  • CF542E Playing on Graph 题解
  • 9/24作业
  • 【ROS2】spin、spinOnce、spin_some、spin_until_future_complete
  • 利用F.interpolate()函数进行插值操作