算法第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.mfbz.cn/a/310.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言—Linux环境下CMake设置库(动态/静态)

1. Yesterday Once More 由于昨日我们在VSCode设置了如何使用CMake构建与编译c语言项目&#xff0c;如有疑问&#xff0c;请看以下链接&#xff0c;今日根据昨天的配置来进一步完成项目的构建。 c语言- 如何构建CMake项目&#xff08;Linux/VSCode&#xff09;-CSDN博客 2. 动态…

【MC】红石比较器

在《我的世界》&#xff08;Minecraft&#xff09;中&#xff0c;红石比较器&#xff08;Redstone Comparator&#xff09; 是一种高级红石元件&#xff0c;主要用于 检测、比较或处理信号强度&#xff0c;同时还能与容器、特定方块互动。 红石比较器有两种模式&#xff1a; 比…

AI应用电商篇汇总(持续补充)

数据集&#xff1a; 1、天池大数据众智平台-阿里云天池 2、魔搭社区 3、https://huggingface.co/datasets 应用&#xff1a; 1、从电商角度设计大模型的 Prompt-CSDN博客 2、常见的LLM-CSDN博客 3、LLM模型的常见部署方式-CSDN博客 4、ollamaopen-webui搭建可视化大模型…

使用Jenkins部署nodejs前端项目

1. 安装node环境 1.1 下载 https://nodejs.org/zh-cn/download 1.2 解压到安装目录 tar -xJvf node-v22.15.1-linux-x64.tar.xz mv node-v22.15.1-linux-x64 /home/soft/ mv node-v22.15.1-linux-x64/ node22原本计划安装 node22和node18&#xff0c;但是CentOS7.9 GLIBCXX …

Power Integrations 汽车电源管理方案:为汽车应用增加系统价值

在新能源汽车产业蓬勃发展的当下&#xff0c;高效的电源管理方案成为提升汽车性能与可靠性的关键。近期&#xff0c;Power Integrations 举办线上交流会&#xff0c;介绍了基于其 1700V InnoSwitch3-AQ 反激式开关 IC 的五款全新参考设计&#xff0c;旨在为 800V 纯电动汽车提供…

前端mjs和js文件区别,mjs和cjs区别---.es.js和.mjs的区别

https://www.cnblogs.com/jocongmin/p/18432236 同一份配置如下,一般打包出来的结果时是一样的,只不过扩展名不一样 export default defineConfig({build: {rollupOptions: {output: [// 同一份配置&#xff0c;仅扩展名不同{ format: es, entryFileNames: [name].mjs },{ fo…

一文掌握vue3基础,适合自学入门案例丰富

Vue3 本文从Vue3的基础语法出发&#xff0c;全面系统的介绍了Vue3的核心概念与应用&#xff0c;旨在帮助自学者更轻松地掌握Vue3。文章内容由浅入深&#xff0c;从通过CDN引入Vue3开始&#xff0c;逐步介绍了组合式API、模块化开发、以及常见的Vue3指令和功能并从单个html的使…

如何自学FPGA设计?

众所周知&#xff0c;FPGA设计自学难度不小&#xff0c;更不存在速成的捷径。这里简单说一下学习的规划&#xff0c;希望能给入门者提供一些方向。 学会相应的知识 不论是科班毕业还是理工科专业出身&#xff0c;想要入行FPGA开发&#xff0c;基础知识必须扎实。尤其是在高校…

Python爬虫(30)Python爬虫高阶:Selenium+Scrapy+Playwright融合架构,攻克动态页面与高反爬场景

目录 一、背景&#xff1a;动态页面与反爬技术的崛起二、技术融合架构设计1. 核心组件分工2. 架构图示3. 关键技术点 三、代码实现&#xff1a;分步详解1. 环境配置2. 核心代码结构3. Scrapy项目集成4. Playwright增强功能示例 四、总结&#xff1a;技术融合的优势与挑战1. 优势…

STM32之定时器

一、内核嘀嗒定时器的原理与应用 基本概念 定时器是STM32中常用的外设&#xff0c;一般定时器的基本功能就是定时&#xff0c;而在Cortex M3/M4内核中也包含一个简单的定时器&#xff0c;就是系统嘀嗒定时器(Systick)&#xff0c;它是属于CM4内核的一个外设&#xff0c;内嵌在…

使用 Java 开发 Android 应用:Kotlin 与 Java 的混合编程

使用 Java 开发 Android 应用&#xff1a;Kotlin 与 Java 的混合编程 在开发 Android 应用程序时&#xff0c;我们通常可以选择使用 Java 或 Kotlin 作为主要的编程语言。然而&#xff0c;有些开发者可能会想要在同一个项目中同时使用这两种语言&#xff0c;这就是所谓的混合编…

云原生安全:错误策略S3存储桶ACL设置为Everyone:FullControl

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 ——从基础到实践的深度解析 1. 基础概念 S3存储桶与ACL Amazon S3(Simple Storage Service)是AWS提供的对象存储服务,支持存储和检索任意规模的数据。ACL(访问控制列表…