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

代码随想录算法训练营第三十七天 | 860.柠檬水找零、406.根据身高重建队列、452.用最少数量的箭引爆气球

目录

860.柠檬水找零

思路

代码

 406.根据身高重建队列

思路

代码

452. 用最少数量的箭引爆气球

思路

代码


860.柠檬水找零

本题看上好像挺难,其实挺简单的,大家先尝试自己做一做。

代码随想录

思路

        这题还有什么难不难的,这道题不是非常经典的入门题吗。能用10块找零就不用5块,10块没了再用5块,就这么简单。

代码
class Solution:def lemonadeChange(self, bills: List[int]) -> bool:five = 0ten = 0twenty = 0for bill in bills:# 情况一:收到5美元if bill == 5:five += 1# 情况二:收到10美元if bill == 10:if five <= 0:return Falseten += 1five -= 1# 情况三:收到20美元if bill == 20:# 先尝试使用10美元和5美元找零if five > 0 and ten > 0:five -= 1ten -= 1#twenty += 1# 如果无法使用10美元找零,则尝试使用三张5美元找零elif five >= 3:five -= 3#twenty += 1else:return Falsereturn True

 406.根据身高重建队列

本题有点难度,和分发糖果类似,不要两头兼顾,处理好一边再处理另一边。

代码随想录

思路

        这题我写过, 只是我已经忘记怎么写了(每日崩溃1/1)。大体上来说,就是先按照身高排序,最高的在最前面,一样高的比较数组中的第二位,第二位小的排前面。这样的好处就是我后面从前向后遍历每一个人时,我可以根据数组的第二位直接insert到que[ ]对应的位置。

代码
class Solution:def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]:# 先按照h维度的身高顺序从高到低排序。确定第一个维度# lambda返回的是一个元组:当-x[0](维度h)相同时,再根据x[1](维度k)从小到大排序people.sort(key=lambda x: (-x[0], x[1]))que = []# 根据每个元素的第二个维度k,贪心算法,进行插入# people已经排序过了:同一高度时k值小的排前面。for p in people:que.insert(p[1], p)return que

452. 用最少数量的箭引爆气球

本题是一道 重叠区间的题目,好好做一做,因为明天三道题目,都是 重叠区间。

代码随想录

思路

        这道题属于重叠区间的问题,一样需要先对给定的数组按这左端点或者右端点进行排序,然后遍历数组,看看这个区间的左端点是否小于等于上个区间放入右端点,如果重叠就不需要额外多用一支箭,但要注意更新右端点要用right = min(right, i[1]),如果不重叠就需要多用一支箭同时更新右端点的值。更新右端点用right=i[1]来更新。

代码
class Solution:def findMinArrowShots(self, points: List[List[int]]) -> int:if len(points) == 0:return 0points.sort(key=lambda x: x[0])count = 1right = points[0][1]for i in points:if i[0] > right:count += 1right = i[1]else:right = min(right, i[1])return count

相关文章:

代码随想录算法训练营第三十七天 | 860.柠檬水找零、406.根据身高重建队列、452.用最少数量的箭引爆气球

目录 860.柠檬水找零 思路 代码 406.根据身高重建队列 思路 代码 452. 用最少数量的箭引爆气球 思路 代码 860.柠檬水找零 本题看上好像挺难&#xff0c;其实挺简单的&#xff0c;大家先尝试自己做一做。 代码随想录 思路 这题还有什么难不难的&#xff0c;这道题不是非…...

GolangFoundation

GolangFoundation 一. Hello World1.1 SDK1.2 环境1.3 hello world1.4 语法规则二. 程序结构2.1 循环2.2 概述2.3 完整写法2.4 类似while2.5 死循环2.6 特殊循环三. 变量3.1 命名3.2 声明2.3 变量...

如果任务过多,队列积压怎么处理?

如果任务过多,队列积压怎么处理? 1、内存队列满了应该怎么办2、问题要治本——发短信导致吞吐量降低的问题不能忽略!!3、多路复用IO模型的核心组件简介1、内存队列满了应该怎么办 如图: 大家可以看到,虽然现在发短信和广告投递,彼此之间的执行效率不受彼此影响,但是请…...

FTP协议——BFTPD基本操作(Ubuntu+Win)

1、描述 本机&#xff08;Win10&#xff09;与虚拟机&#xff08;Ubuntu22.04.4&#xff09;上的BFTPD服务器建立FTP连接&#xff0c;执行一些基本操作。BFTPD安装教程&#xff1a;FTP协议——BFTPD安装&#xff08;Linux&#xff09;-CSDN博客 2、 步骤 启动BFTPD。启动文件…...

为什么需要分布式 ID?

目录 为什么需要分布式 ID 分布式 ID 的生成方法 分布式 ID 的应用场景 小结 在现代软件架构中&#xff0c;分布式系统架构变得越来越流行。在这些系统中&#xff0c;由于组件分散在不同的服务器、数据中心甚至不同的地理位置&#xff0c;因此要构建高性能、可扩展的应用系…...

MIT6.828 Lab2-3 Sysinfo

目录 一、实验内容二、实验过程2.1 已有的代码2.2 需补充内容/kernel/kalloc.c修改&#xff08;剩余内存计算的函数&#xff09;/kernel/proc.c修改&#xff08;统计进程数量的函数&#xff09;/kernel/defs.h修改添加/kernel/sysinfo.c文件/kernel/syscall.h修改/kernel/sysca…...

形态学操作:腐蚀、膨胀、开闭运算、顶帽底帽变换、形态学梯度区别与联系

一、总述相关概念 二、相关问题 1.形态学操作中的腐蚀和膨胀对图像有哪些影响&#xff1f; 形态学操作中的腐蚀和膨胀是两种常见的图像处理技术&#xff0c;它们通过对图像进行局部区域的像素值替换来实现对图像形状的修改。 腐蚀操作通常用于去除图像中的噪声和细小的细节&a…...

StringBufferInputStream类,你学会了吗?

在Java编程中,处理字符串数据流是一项常见的任务。 为了更灵活地处理字符串数据流,Java提供了StringBufferInputStream类,它允许将字符串转换为输入流,从而可以像处理其他输入流一样对字符串进行操作。 本文将深入探讨StringBufferInputStream类的背景、用法、优缺点以及…...

06_Tomcat

文章目录 Tomcat1.概念2.Tomcat安装3.Tomcat项目结构4.标准web项目结构5.Tomcat部署项目方式6.IDEA关联Tomcat6.1 构建tomcat和idea关联6.2 使用idea创建一个Javaweb工程6.3 使用idea将工程**构建**成一个app6.4 使用idea将构建好的app**部署**到tomcat中 Tomcat 1.概念 Tomc…...

系统安全扫描扫出了:可能存在 CSRF 攻击怎么办

公司的H5在软件安全测试中被检查出可能存在 CSRF 攻击&#xff0c;网上找了一堆解决方法&#xff0c;最后用这种方式解决了。 1、问题描述 CSRF 是 Cross Site Request Forgery的缩写(也缩写为也就是在用户会话下对某个 CGI 做一些 GET/POST 的事&#xff0c;RIVTSTCNNARGO一这…...

Android ART 虚拟机简析

源码基于&#xff1a;Android U 1. prop 名称选项名称heap 变量名称功能 dalvik.vm.heapstartsize MemoryInitialSize initial_heap_size_ 虚拟机在启动时&#xff0c;向系统申请的起始内存 dalvik.vm.heapgrowthlimit HeapGrowthLimit growth_limit_ 应用可使用的 max…...

Android低代码开发 - MenuPanel的源码剖析和基本使用

看了我上篇文章Android低代码开发 - 像启蒙和乐高玩具一样的MenuPanel 之后&#xff0c;本篇开始讲解代码。 源代码剖析 首先从MenuPanelItemRoot讲起。 package dora.widget.panelinterface MenuPanelItemRoot {/*** 菜单的标题。** return*/var title: String?fun hasTit…...

Leetcode刷题笔记3

18. 四数之和 18. 四数之和 - 力扣&#xff08;LeetCode&#xff09; 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&…...

初识C语言——第二十九天

数组 本章重点 1.一维数组的创建和初始化 数组的创建 注意事项&#xff1a; 1.一维由低数组在内存中是连续存放的&#xff01; 2.随着数组下标的增长&#xff0c;地址是由低到高变化的 2.二维数组的创建和初始化 注意事项&#xff1a; 1.二维数组在内存中也是连续存放的&am…...

LeetCode27.移除元素

题目链接&#xff1a; 27. 移除元素 - 力扣&#xff08;LeetCode&#xff09; 思路分析&#xff1a;同样属于经典的双指针移动问题&#xff0c;要掌握固定的思路即可。 算法分析&#xff1a;这个题目可以这样处理&#xff0c;我们把所有非val 的元素都向前移动&#xff0c;把…...

DiffMap:首个利用LDM来增强高精地图构建的网络

论文标题&#xff1a; DiffMap: Enhancing Map Segmentation with Map Prior Using Diffusion Model 论文作者&#xff1a; Peijin Jia, Tuopu Wen, Ziang Luo, Mengmeng Yang, Kun Jiang, Zhiquan Lei, Xuewei Tang, Ziyuan Liu, Le Cui, Kehua Sheng, Bo Zhang, Diange Ya…...

ComfyUI简单介绍

&#x1f353;什么是ComfyUI ComfyUI是一个为Stable Diffusion专门设计的基于节点的图形用户界面&#xff0c;可以通过各种不同的节点快速搭建自己的绘图工作流程。 软件打开之后是长这个样子&#xff1a; 同时软件本身是github上的一个开源项目&#xff0c;开源地址为&#…...

【内存泄漏Bug】animation未释放

问题描述 一个页面做了动画特效&#xff0c;这个页面有可能跳转到其他页面&#xff0c;并长时间不返回&#xff0c;该页面此时已经不活跃了&#xff0c;该页面的对象为无用对象&#xff0c;存在内存泄漏风险 问题分析 这个activity的特性是 1. 有可能跳转到其他页面 2. 有可…...

《异常检测——从经典算法到深度学习》28 UNRAVEL ANOMALIES:基于周期与趋势分解的时间序列异常检测端到端方法

《异常检测——从经典算法到深度学习》 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3 基于One-Class SVM的异常检测算法4 基于高斯概率密度异常检测算法5 Opprentice——异常检测经典算法最终篇6 基于重构概率的 VAE 异常检测7 基于条件VAE异常检测8 Donut: …...

Python正则模块re方法介绍

Python 的 re 模块提供了多种方法来处理正则表达式。以下是一些常用的方法及其功能介绍&#xff1a; 1. re.match() 在字符串的开始位置进行匹配。 import repattern r\d string "123abc456"match re.match(pattern, string) if match:print(f"匹配的字符…...

如何在浏览器中直接查看SQLite数据库文件?WebAssembly技术带来的零安装解决方案

如何在浏览器中直接查看SQLite数据库文件&#xff1f;WebAssembly技术带来的零安装解决方案 【免费下载链接】sqlite-viewer View SQLite file online 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite-viewer 你是否曾经需要快速查看一个SQLite数据库文件&#xff…...

金融数据宝藏库:沪深Level2与高频数据拆解

被高频数据搞懵了&#xff1f;硬盘空间就是这么没的。刚入坑那会儿&#xff0c;总想用最细的数据&#xff0c;结果光下载和整理就耗掉大半天&#xff0c;策略还没写呢。 今天简单聊聊几种常见的高频数据到底有啥区别&#xff0c;主要是沪深股票这块。数据来源是CMES金融数据库&…...

USB外设概率性不识别问题详解

第一种情况&#xff0c;CPU主机端口下外接一个4口的扩展hub&#xff0c;但是扩展的hub端口概率性无法识别外设。如下log&#xff1a; 04-14 12:33:46.119450[ 18.884163] usb 3-1.2: new high-speed USB device number 4 using xhci-hcd 04-14 12:33:46.200327[ 18.964548]…...

Linux下BepInEx Mod部署原理与实战指南

1. 为什么Linux玩家总在Mod部署上卡住&#xff1f;——BepInEx不是“装上就能用”的玩具 BepInEx、Unity、Linux、Mod框架——这四个词凑在一起&#xff0c;对很多刚从Windows转战Linux的玩家或Mod开发者来说&#xff0c;几乎等于一道默认关闭的门。我第一次在Ubuntu 22.04上尝…...

BurpSuite中文乱码根因解析:Java字体渲染与系统编码协同调试

1. 为什么中文设置不是“点一下就完事”——BurpSuite里被低估的本地化陷阱刚接触渗透测试的新手&#xff0c;打开BurpSuite第一反应往往是&#xff1a;界面全是英文&#xff0c;看着费劲。于是搜到“BurpSuite 中文设置”&#xff0c;点开几篇教程&#xff0c;照着复制粘贴几行…...

Meta 裁员约 8000 人:弥补 AI 巨额投资,削减人力成本

Meta 裁员&#xff1a;弥补 AI 投资缺口据报道&#xff0c;Meta 已通知数千名员工被裁员&#xff0c;此次裁员是为弥补其在人工智能方面的巨额投资。《商业内幕》分享的 Meta 管理层邮件显示&#xff0c;这是公司“持续努力提高运营效率、平衡其他投资的举措之一”。裁员规模与…...

为什么你的 Agent 总是跑着跑着就废了?聊聊 Loop 设计里那些坑(文末赠书)

"我的 Agent Demo 跑得挺顺的,一上生产就各种出问题。" 这句话我在不同场合听过太多次了。包括我自己最早写 Agent 的时候也是这样——一个简单的 ReAct 循环,本地测得好好的,放到真实场景里不是上下文爆了就是死循环,偶尔还给你来个"无限重试把 API 额度刷光&…...

ChatGPT生成的SQL注入漏洞代码竟通过了87%静态扫描器?安全团队紧急避坑指南(含检测脚本)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;ChatGPT生成的SQL注入漏洞代码竟通过了87%静态扫描器&#xff1f;安全团队紧急避坑指南&#xff08;含检测脚本&#xff09; 近期&#xff0c;某金融企业安全团队在代码审计中发现&#xff0c;一段由ChatGPT生…...

用wireshark抓取分析EtherCAT报文

&#x1f4dc; 第1章&#xff1a;EtherCAT报文结构 EtherCAT报文结构及Wireshark对应显示&#xff1a; 以太网帧头&#xff1a;14字节&#xff0c;包含目标/源MAC地址&#xff0c;帧类型 (EtherType) 固定为 0x88A4。EtherCAT帧头&#xff1a;2字节&#xff0c;包含一个11位的“…...

为什么你的NotebookLM结论总被质疑?揭秘内部显著性引擎的3层贝叶斯校验链(含源码级日志解析)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;NotebookLM显著性判断的底层逻辑悖论 NotebookLM 在处理用户上传文档并生成摘要或回答时&#xff0c;依赖“显著性判断”&#xff08;Significance Scoring&#xff09;机制对文本片段进行加权排序。该机制表…...