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

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

文章目录

      • 860.柠檬水找零
      • 406.根据身高重建队列
      • 452. 用最少数量的箭引爆气球:star:

860.柠檬水找零

  • 链接:代码随想录

5美元相当滴珍贵

  • 解题思路:
    情况一:账单是5,直接收下。
    情况二:账单是10,消耗一个5,增加一个10
    情况三:账单是20,优先消耗一个10和一个5,如果不够,再消耗三个5
    所以对于前两种情况消耗都是固定的,贪心贪在第三步
public boolean lemonadeChange(int[] bills) {int five = 0,ten = 0,twenty = 0;for(int bill : bills){//情况一if(bill == 5){five++;}//情况二if(bill == 10){if(five <= 0){return false;}five--;ten++;}//情况三if(bill == 20){//贪心:优先花10元if(ten > 0 && five > 0){ten--;five--;twenty++;}else if(five >= 3){five-=3;twenty++;}else{return false;}}}return true;
}

406.根据身高重建队列

  • 链接:代码随想录

  • 解题思路:
    两个维度:1. 身高;2.前面有几个人比自己大于等于高
    ①如果按照k来从小到大排序,排完之后,会发现k的排列并不符合条件,身高也不符合条件,两个维度哪一个都没确定下来。
    因为如果按照k排序完之后,还需要修改k的值,就是k和h都没确定下来
    ②那么按照身高h来排序呢,身高一定是从大到小排(身高相同的话则k小的站前面),让高个子在前面。
    只要身高确定下来之后,后边的元素随便向前边插入,都不会影响前面的k的排序,即确定了身高之后,在移动也不会改变k,只是调整符合k

  • 图像理解

2023-04-18T17_30_43

按身高来做
2023-04-18T17_32_42

public int[][] reconstructQueue(int[][] people) {//λ表达式,传入的是数组// Comparator<Integer[]> comparator = (a,b) -> {//     if(a[0] == b[0]){//         return a[1] - b[1];//     }//     return b[0] - a[0];// };//根据身高排好序,身高高的在前面//大于0就交换Arrays.sort(people,(a, b) -> {if (a[0] == b[0]) return a[1] - b[1];//相等,k按从小到大拍return b[0] - a[0];//身高按从大到小拍});//调整位置LinkedList<int[]> que = new LinkedList<>();for (int[] p : people) {que.add(p[1],p);//按位置加入}return que.toArray(new int[people.length][]);}

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

  • 题目链接:代码随想录

重叠问题

  • 解题思路:
    贪心:局部最优:当气球出现重叠,一起射,所用弓箭最少。全局最优:把所有气球射爆所用弓箭最少。
    ①先对数组进行排序,初始值置为1,因为最少有一次射箭
    ②判断边界是否重叠,如果重叠的话,那么跳过这次射箭,并且更新重叠的最小右边界,便于下一次判重叠区域
    如果没有重叠的话,那么直接射箭次数加+1

  • 图像理解:

    2023-04-18T19_02_112023-04-18T19_02_11

public int findMinArrowShots(int[][] points) {//从小到大排序Arrays.sort(points, (a, b) -> {return Integer.compare(a[0], b[0]);});int count = 1;//射箭的话直射一箭for (int i = 1; i < points.length; i++) {if(points[i][0] > points[i - 1][1]){count++;}else{//气球i和i-1是相邻的情况,更新最小重叠有边界points[i][1] = Math.min(points[i][1], points[i - 1][1]);//更新重叠气球的最小边界}}return count;
}

相关文章:

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

文章目录 860.柠檬水找零406.根据身高重建队列452. 用最少数量的箭引爆气球:star: 860.柠檬水找零 链接:代码随想录 5美元相当滴珍贵 解题思路&#xff1a; 情况一&#xff1a;账单是5&#xff0c;直接收下。 情况二&#xff1a;账单是10&#xff0c;消耗一个5&#xff0c;增加…...

爬虫为什么需要多线程

多线程爬虫是一种同时运行多个线程来提高爬取速度的爬虫方式。通过将大量的工作分配给不同的线程&#xff0c;可以减少爬虫的运行时间&#xff0c;提高效率。不过需要注意的是&#xff0c;在爬取过程中需要合理的管理线程数&#xff0c;以避免对被爬取的网站造成过大的负荷。 …...

下一代智能座舱风口下,“超级”Tier 1强势崛起

智能座舱进入全新周期&#xff0c;强者愈强的趋势会快速显现。 可以观察到&#xff0c;智能座舱功能日趋多元化。从多屏互动到舱内全场景多元交互&#xff0c;到更多娱乐平台的上线&#xff0c;智能座舱已经从最初的重多功能转变成重体验。 从架构层面来看&#xff0c;各个功…...

第 三 章 UML 类图

文章目录 前言一、依赖关系&#xff08;虚线箭头&#xff09;二、泛化关系&#xff1a;继承&#xff08;实线空心箭头&#xff09;三、实现关系&#xff08;虚线空心箭头&#xff09;四、关联关系&#xff08;一对一为实线箭头&#xff0c;一对多为实线&#xff09;五、聚合关系…...

java版工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离 功能清单

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示…...

内网穿透实现在外远程连接RabbitMQ服务

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 转载自远控源码文章&#xff1a;无公网IP&#xff…...

抖音数字人主播app

抖音数字人主播app是指一款利用计算机生成的虚拟数字人&#xff0c;在抖音平台上进行实时音视频传输和互动的应用程序。该软件可以让用户创建自己的虚拟数字人&#xff0c;并在抖音平台上进行实时互动和交流。 抖音数字人主播app通常需要包含以下功能&#xff1a; 3D建…...

亚马逊平台使用API接口通过关键字搜索商品

亚马逊公司&#xff08;Amazon&#xff0c;简称亚马逊&#xff1b;NASDAQ&#xff1a;AMZN&#xff09;&#xff0c;2022年营收为5140亿美元&#xff0c; 是美国最大的一家网络电子商务公司&#xff0c;位于华盛顿州的西雅图。是网络上最早开始经营电子商务的公司之一&#xff…...

《花雕学AI》用ChatGPT创造猫娘角色:人工智能角色扮演聊天对话的风险与对策

出于好奇心&#xff0c;我以“ChatGPT&#xff0c;调教猫娘”为题&#xff0c;开始了解ChatGPT角色扮演提示语的用法。ChatGPT给出的介绍是&#xff0c;调教猫娘是一种利用ChatGPT的角色扮演功能&#xff0c;让模型模仿一种类似猫的拟人化生物的行为和语言的活动&#xff0c;并…...

软件测试常规测试过程模型——V模型与X模型

一、V模型简单介绍及讲解 V模型是软件测试过程模型中最广为人知的模型&#xff0c;尽管很多富有实际经验的测试人员还是不太熟悉V模型&#xff0c;或者其它的模型。V模型中的过程从左到右&#xff0c;描述了基本的开发过程和测试行为。V模型的价值在于它非常明确地标明了测试过…...

feign-starter

使用说明 功能 自动装配 设置客户端不主动重试日志打印客户端负载均衡json 转换使用 JacksonUtil 如何引入 com.hete.support xx-feign-starter 如何配置 超时时间 ⚠️ 默认值比较大&#xff0c;需要手动根据实际场景设置 feign: client: config: # 默认配置&#xff0c;…...

FVM初启,Filecoin生态爆发着力点在哪?

Filecoin 小高潮 2023年初&#xff0c;Filecoin发文分享了今年的三项重大变更&#xff0c;分别是FVM、数据计算和检索市场的更新&#xff0c;这些更新消息在发布后迅速吸引了市场的广泛关注。 特别是在3月14日&#xff0c;Filecoin正式推出了FVM&#xff0c;这一变革使得Filec…...

对比度亮度调整与通道分离合并

对比度亮度调整与通道分离合并 对比度亮度调整: 1)原理介绍: g’ g * Mult Add ⚫ g 表示原图像像素 ⚫ g’ 表示输出图像像素 ⚫ Mult 被称为增益(gain), 通常用来控制图像的对比度 ⚫ Add 通常被称为偏置(bias), 通常用来控制图像的亮度 g’(i,j) Mult * g(i,j) Add …...

Java终止线程

1、正常运行结束 程序运行结束&#xff0c;线程自动结束。 2、使用stop方法强制终止 不安全&#xff0c;不建议使用&#xff1a; 调用 stop() 方法会立刻停止 run() 方法中剩余的全部任务&#xff0c;包括在 catch 或 finally 语句中的&#xff0c;并抛出ThreadDeath异常&a…...

Qt的Qss用法

Qt 的 Qss 是一种用于定义用户界面的样式表语言。它可以用来定义控件的颜色、字体、边框、背景等样式&#xff0c;可以很方便的实现自定义的样式效果。 Qss 的基本语法和 CSS 类似&#xff0c;主要是由选择器和样式属性构成。 选择器 选择器用来指定要样式化的控件&#xff…...

数塔dp -A

文章目录 数塔dp -A程序设计程序分析数塔dp -A 【问题描述】 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点, 则经过的结点的数字之和最小是多少? 已经告诉你了,这是个DP的题目,你…...

Spring MVC 接收 json 和返回 json (14)

目录 总入口 测试case 源码分析 1. 针对RequestBody的参数解析 2. 针对 ResponseBody 的返回值处理 总入口 通过上一篇Spring MVC 参数解析&#xff08;13&#xff09;_chen_yao_kerr的博客-CSDN博客的说明&#xff0c;相信大家对Sping MVC的参数解析有了一定的了解&…...

注释和关键字

注释 注释概念 ●注释是在程序指定位置添加的说明性信息 ●简单理解&#xff1a;对代码的一种解释说明&#xff0c;方便我们程序员更好的去阅读代码 例如&#xff1a; public class HelloWorld {//这是通过class定义了一个类&#xff0c;类名叫HelloWorld public static voi…...

第一次参加CSDN周赛,这体验很难说···

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 本文章收录于专栏 【CSDN周赛】 本篇文章目录 &#x1f30f;前言&#x1f30f;一、勾股数&#x1f338;题目描述&#x1f338;题解 &a…...

8.DRF组件之认证、权限

DRF(Django Rest Framework)提供了一套权限和身份认证系统,可以在视图中进行配置。权限系统用于控制用户对资源的访问权限,身份认证系统用于验证用户的身份信息。 DRF支持以下几种权限控制方式: AllowAny:不做任何验证,允许所有用户访问。 IsAuthenticated:只允许已经…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存&#xff1a;一级缓存、二级缓存 默认情况下&#xff0c;只有一级缓存开启&#xff08;sqlSession级别的缓存&#xff09;二级缓存需要手动开启配置&#xff0c;需要局域namespace级别的缓存 一级缓存&#xff08;本地缓存&#…...