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

算法第26天 | 贪心算法、455.分发饼干、376. 摆动序列、 53. 最大子序和

弹性算法理论基础

想清楚 局部最优 是什么,如果可以推导出全局最优,那就是正确的贪心算法

455. 分发饼干

题目

在这里插入图片描述

思路与解法

class Solution:def findContentChildren(self, g: List[int], s: List[int]) -> int:res = 0i = 0j = 0g.sort()s.sort()while i < len(s) and j < len(g):if s[i] >= g[j]:res += 1j += 1i += 1return res

376. 摆动序列

题目

在这里插入图片描述

思路与解法

没太懂,但是不想细想了

class Solution:def wiggleMaxLength(self, nums: List[int]) -> int:if len(nums) <= 1:return len(nums)  # 如果数组长度为0或1,则返回数组长度curDiff = 0  # 当前一对元素的差值preDiff = 0  # 前一对元素的差值result = 1  # 记录峰值的个数,初始为1(默认最右边的元素被视为峰值)for i in range(len(nums) - 1):curDiff = nums[i + 1] - nums[i]  # 计算下一个元素与当前元素的差值# 如果遇到一个峰值if (preDiff <= 0 and curDiff > 0) or (preDiff >= 0 and curDiff < 0):result += 1  # 峰值个数加1preDiff = curDiff  # 注意这里,只在摆动变化的时候更新preDiffreturn result  # 返回最长摆动子序列的长度

53. 最大子序和

题目

在这里插入图片描述

思路与解法

class Solution:def maxSubArray(self, nums: List[int]) -> int:res = float('-inf')count = 0for i in range(len(nums)):count += nums[i]if count > res:res = countif count < 0:count = 0return res
http://www.xdnf.cn/news/8133.html

相关文章:

  • 如何在Java中进行PDF合并
  • 软考 系统架构设计师系列知识点之杂项集萃(69)
  • Linux Shell编程(五)
  • 【鸿蒙开发】Hi3861学习笔记-超声波测距
  • HTB-Titanic
  • 多模态大语言模型arxiv论文略读(八十八)
  • LeetCode面试经典150题梳理
  • java I/O
  • 【补题】The 2021 ICPC Asia Nanjing Regional Contest Problem J. Xingqiu’s Joke
  • [Java][Leetcode middle] 6. Z 字形变换
  • TCP与UDP协议全面对比:从原理到应用场景深度解析
  • ROS2 camera_calibration 双目相机标定指令
  • 监控易一体化运维:网络拓扑管理,网络管理高效之道
  • 异常数据的检测
  • 【基础】Windows开发设置入门11:hyper-v虚拟机创建
  • 批处理操作优化思路
  • 使用Pyinstaller打包python,全过程解析【2025最详细】
  • 湖北理元理律师事务所:专业债务优化如何助力负债者重获生活掌控权
  • CS和BS架构
  • 《数据结构笔记一》: 指针、结构体、动态内存分配、算法时间复杂度。
  • Python绘制3D图表
  • PostgreSQL 18 升级新体验:pg_upgrade --swap 极简教程
  • BGE-M3 文本情感分类实战:预训练模型微调,导出ONNX并测试
  • b/s开发 1.0
  • DDS与PLL技术
  • 力扣HOT100之二叉树: 437. 路径总和 III
  • 8天Python从入门到精通【itheima】-29~31
  • dify介绍(优势与作用)
  • 小样本百分比的统计检验
  • AbMole推荐Rapamycin: 自噬、肿瘤、免疫、衰老研究的关键工具