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

Day 31 贪心01

理论基础 

贪心的本质是选择每一阶段的局部最优,从而达到全局最优最好用的策略就是举反例,如果想不到反例,那么就试一试贪心吧

贪心算法一般分为如下四步:

  • 将问题分解为若干个子问题
  • 找出适合的贪心策略
  • 求解每一个子问题的最优解
  • 将局部最优解堆叠成全局最优解

455.分发饼干  

题目链接:455. 分发饼干 - 力扣(LeetCode)

class Solution {public int findContentChildren(int[] g, int[] s) {Arrays.sort(g);Arrays.sort(s);int count = 0;int start = 0;for(int i = 0; i < s.length && start < g.length; i++){if(s[i] >= g[start]) {start++;count++;}}return count;}
}

376. 摆动序列  

题目链接:376. 摆动序列 - 力扣(LeetCode)

思路:当前差值和上一个差值进行比较

class Solution {public int wiggleMaxLength(int[] nums) {if(nums.length <= 1){return nums.length;}int curdiff = 0;int prediff = 0;int count = 1;for(int i = 1; i < nums.length; i++){curdiff = nums[i] - nums[i-1];if((curdiff > 0 && prediff <= 0) || (curdiff < 0 && prediff >=0) ){count++;prediff = curdiff;}}return count;}
}

53. 最大子序和  

题目链接:53. 最大子数组和 - 力扣(LeetCode)

思路:

class Solution {public int maxSubArray(int[] nums) {if(nums.length == 1){return nums[0];}int maxsum = nums[0];int sum =0;for(int i = 0; i < nums.length; i++){sum += nums[i];maxsum = Math.max(maxsum,sum);if(sum < 0) sum = 0;}return maxsum;}
}

http://www.lryc.cn/news/324568.html

相关文章:

  • C++11特性:std::lock_guard是否会引起死锁?
  • stm32使用定时器实现PWM与呼吸灯
  • MAC本安装telnet
  • [AIGC] 使用Spring Boot进行单元测试:一份指南
  • 使用 Go 语言统计 0-200000 的数字中,哪些是素数?
  • Fabric Measurement
  • wayland(xdg_wm_base) + egl + opengles 使用 Assimp 加载材质文件Mtl 中的纹理图片最简实例(十六)
  • 面试常问:为什么 Vite 速度比 Webpack 快?
  • React腳手架已經創建好了,想使用Vite作為開發依賴
  • 数据结构——双向链表(C语言版)
  • 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
  • 深度学习pytorch——多层感知机反向传播(持续更新)
  • 五、分布式锁-redission
  • ARM的三个按键实验
  • 高架学习笔记之需求工程
  • mysql基础2多表查询
  • Qt 写一个邮件发送程序
  • swagger3快速使用
  • 一键入门Ubuntu22!
  • 阿里云服务器价格购买价格表,2024新版报价查询
  • 实现防抖函数并支持第一次立刻执行(vue3 + ts环境演示)
  • WPF —— DataGrid数据网格
  • 牛客题霸-SQL进阶篇(刷题记录一)
  • 网络安全实训Day12
  • 对话Midjourney创始人:图片仅是起步,人工智能将全面改变学习、创意和组织。
  • Elasticsearch:将 ILM 管理的数据流迁移到数据流生命周期
  • LeetCode刷题记录——day6
  • C++String类
  • Linux docker7--私有镜像仓库registry和UI搭建及使用
  • IDS入侵检测系统分为两大类。