代码随想录第三十五天
代码随想录第三十五天
- Leetcode 860. 柠檬水找零
- Leetcode 406. 根据身高重建队列
- Leetcode 452. 用最少数量的箭引爆气球
Leetcode 860. 柠檬水找零
题目链接: 柠檬水找零
自己的思路:我的垃圾思路!!!!!!复杂度超高!!!不过好歹是自己想出来的哈哈哈哈哈!!!sh使用就是记录之前出现的5和10的个数(其实两个数就可以记录了),当出现10或者20的时候将对应的钱找给他!!!!
代码:
class Solution {public boolean lemonadeChange(int[] bills) {Map<Integer,Integer> map = new HashMap<>();for (int i =0;i<bills.length;i++){map.put(bills[i],map.getOrDefault(bills[i],0)+1);if (bills[i]==10){if (map.get(5)==null||map.get(5)==0){return false;}else{map.put(5,map.get(5)-1); }}if (bills[i]==20){if (map.get(5)==null||map.get(5)==0){return false;}else if (map.get(5)!=null&&map.get(5)!=0&&map.get(10)!=null&&map.get(10)!=0){map.put(5,map.get(5)-1); map.put(10,map.get(10)-1); }else if (map.get(10)==null||map.get(10)==0&&map.get(5)!=null&&map.get(5)!=0){map.put(5,map.get(5)-3);if (map.get(5)<0){return false;} }}}return true;}
}
复杂度分析:
时间复杂度: O ( n ) \mathcal{O}(n) O(n)
空间复杂度: O ( n ) \mathcal{O}(n) O(n)
正确思路:和我的思路是一样的,只是我是用Map存的个数(我是智障),正确的应该使用两个数字来存储个数就可以!!!
代码:
class Solution {public boolean lemonadeChange(int[] bills) {int five = 0;int ten = 0;for (int bill:bills){if (bill==5) five++;else if (bill==10){if (five<=0) return false;else {five--;ten++;}}else{if (ten>0&&five>0){ten--;five--;}else if (five>=3){five -= 3;}else return false;}}return true;}
}
Leetcode 406. 根据身高重建队列
题目链接: 根据身高重建队列
自己的思路:想不到呀!!!
正确思路:这种有两个维度重新排列的,一般都是第一个维度从大到小排序,第二个维度从小到大排序,或者反过来,这样可能会使问题变简单!!!这道题的思路:先按身高从大到小进行排序,如果k相同的则按照k从小到大排序,排完序之后,新建一个数组来存放新的数据,然后遍历之前的数组,取出数组中的元素num,num应该是一个数组,第二个维度表示k,把k当做索引,将[k,num]按k的索引插入到新数组中去,感觉这道题只能背过做法,记住这种思考方式就行!!!
代码:
class Solution {public int[][] reconstructQueue(int[][] people) {//先按身高进行从大到小排序,身高相同k按从小到大排序Arrays.sort(people,(a,b)->{if (a[0]==b[0]) return a[1]-b[1];return b[0]-a[0];});ArrayList<int[]> queue = new ArrayList<>();for (int[] num:people){//向指定索引插入元素queue.add(num[1],num);}return queue.toArray(new int[people.length][]);}
}
Leetcode 452. 用最少数量的箭引爆气球
题目链接: 用最少数量的箭引爆气球
自己的思路:没想到!!!!
正确思路:贪心贪在少射几支箭!先按从小到大的顺序将每个气球的左边界排序,这样就比较好比较了,我们可以比较当前气球的左边界和上一个气球的右边界,如果当前气球的左边界大于上一个气球的右边界,说明一定不重叠而且不挨着,索引我们需要再加一支弓箭,否则我们需要更新我们的右边界来看一下后面还有没有气球是可以一起射下来的,当前数组的右边界更新为当前数组的右边界和上一个数组右边界的最小值,然后遍历整个数组就可以了!!!
代码:
class Solution {public int findMinArrowShots(int[][] points) {if (points.length==0) return 0;//将气球左边界从小到大排序Arrays.sort(points,(a,b)->Integer.compare(a[0], b[0]));//至少需要一支弓箭int result = 1;for (int i =1;i<points.length;i++){//如果当前气球左边界>上一个气球右边界,那么一定再需要一支箭if (points[i][0]>points[i-1][1]){result++;}else{//更新右边界,看看后面可不可以//右边界选取两个之间的最小值points[i][1] = Math.min(points[i-1][1],points[i][1]);}}return result;}
}
相关文章:
代码随想录第三十五天
代码随想录第三十五天 Leetcode 860. 柠檬水找零Leetcode 406. 根据身高重建队列Leetcode 452. 用最少数量的箭引爆气球 Leetcode 860. 柠檬水找零 题目链接: 柠檬水找零 自己的思路:我的垃圾思路!!!!!!复…...
块、行内块水平垂直居中
1.定位实现水平垂直居中 <div class"outer"><div class"test inner1">定位实现水平垂直居中</div></div><style>.outer {width: 300px;height: 300px;border: 1px solid gray;margin: 100px auto 0;position: relative;}.te…...
Mybatis引出的一系列问题-动态 SQL
动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底…...
Docker学习之构建Base Image
构建Base Image 目标是构建一个类似官方Hello world的镜像,需要配置好Docker运行环境。 创建目录,编写代码 创建并进入docker目录。 mkdir docker cd dockertouch hello.cvim hello.chello.c文件的内容如下: #include <stdio.h>in…...
SFM(Structure from Motion)和NeRF(Neural Radiance Fields)
SFM(Structure from Motion)和NeRF(Neural Radiance Fields)都是计算机视觉领域中的重要算法,用于不同的任务和应用。 SFM(Structure from Motion): SFM是一种从图像序列中重建三维场…...
[Vue] Vue2和Vue3的生命周期函数
vue2有11个生命周期钩子, vue3有8个生命周期钩子 从vue创建、运行、到销毁总是伴随着各种事件, 创建、挂载、更新到销毁。 1.vue2系列生命周期 ⑴【beforecreate】实例创建前。 vue完全创建之前,会自动执行这个函数。 ⑵【Created】实例创建后。 这也是个生命…...
springboot集成分布式任务调度系统xxl-job(调度器和执行器)
一、部署xxl-job服务端 下载xxl-job源码 下载地址: https://gitee.com/xuxueli0323/xxl-job 二、导入项目、创建xxl_job数据库、修改配置文件为自己的数据库 三、启动项目、访问首页 访问地址: http://localhost:8080/xxl-job-admin/ 账号࿱…...
11_Vue3中的新的组件
1. Fragment 在Vue2中:组件必须要有一个跟标签在Vue3中:组件可以没有根标签,内部会将多个标签包含在一个Fragment虚拟元素中好处:减少标签层级,减少内存占用 2. Teleport 什么是Teleport?——Teleport 是一种能够将…...
详解推送Git分支时发生的 cannot lock ref 错误
在码云上建了一个项目仓库,分支模型使用 git-flow ,并在本地新建了一个功能分支 feature/feature-poll。后来在推送时发生错误,提示 cannot lock ref ...... 这样的错误信息。下面复盘一下具体过程和解决办法,以供参考。 在码云中建立仓库时,考虑到想按照 GitFlow 的模式…...
[国产MCU]-BL602开发实例-PWM
PWM 文章目录 PWM1、BL602的PWM介绍2、PWM驱动API介绍3、PWM使用示例脉冲宽度调制(Pulse width modulation,简称PWM)是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳定电源输出的改变。这种方…...
【JMeter】 使用Synchronizing Timer设置请求集合点,实现绝对并发
目录 布局设置说明 Number of Simulated Users to Group Timeout in milliseconds 使用时需要注意的点 集合点作用域 实际运行 资料获取方法 布局设置说明 参数说明: Number of Simulated Users to Group 每次释放的线程数量。如果设置为0,等同…...
无法对watchdog.sys等系统文件删除,弯道修复,这里解决办法很简单
右击360强力删除...
ClickHouse(九):Clickhouse表引擎 - Log系列表引擎
进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,Kerberos安全认证,大数据OLAP体系技术栈-CSDN博客 &…...
3.1 计算机网络和网络设备
数据参考:CISP官方 目录 计算机网络基础网络互联设备网络传输介质 一、计算机网络基础 1、ENIAC:世界上第一台计算机的诞生 1946年2月14日,宾夕法尼亚大学诞生了世界上第一台计算机,名为电子数字积分计算机(ENIAC…...
值得中国人民大学与加拿大女王大学金融硕士中的金融人观看的五部电影
积金累玉的机会每个人都会把握,那么学习可以实现,生活娱乐一样可以。当电影遇见金融会产生怎样的化学变化呢?今天我们就带着这样的疑问来一起走进英国时报发布的经典电影,也是最值得中国人民大学与加拿大女王大学金融硕士中的金融…...
【数据库】Redis可以替代Mysql吗
Redis和Mysql的搭配 Redis可以替代Mysql吗什么是RedisRedis适用的场景以及优点Redis的缺点 什么是MysqlMysql的优点Mysql缺点 总结 Redis可以替代Mysql吗 Redis不能代替MySQL, Redis和MySQL只能是一种互补。 什么是Redis Redis是一种非关系型数据库,也…...
5 指针与多维数组:多维数组在内存中的存储与指针的关系
推荐最近在工作学习用的一款好用的智能助手AIRight 网址是www.airight.fun。 指针与多维数组:多维数组在内存中的存储与指针的关系 引言 多维数组是数据结构中常见且重要的概念,它是由多个一维数组组成的数据集合。在计算机内存中,多维数组…...
Spring 创建 Bean 的三种方式
在使用 Spring 框架后,对象以 Bean 的形式统一交给 IOC 容器去创建和管理。现阶段主流的方式是基于 SpringBoot 框架,基于注解的方式实现 Bean 的创建,但在原生 Spring 框架中其实存在三种创建 Bean 的方式。 一、基础类 BeanProcess 实体类…...
软工导论知识框架(五)面向对象方法学
传统软件工程方法学适用于中小型软件产品开发; 面向对象软件工程方法学适用于大型软件产品开发。 一.四要素 对象+类+继承+传递消息实现通信 二.概念 1.对象:具有相同状态的一组操作的集合,对状态和操作…...
MyBatisPlus代码生成器
首先需要mybaits-plus依赖和自动代码生成器依赖 <!-- mybatis-plus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.5</version></dependency><!-…...
别只盯着波特率!深入理解英飞凌MCMCAN的报文过滤与优先级处理机制
别只盯着波特率!深入理解英飞凌MCMCAN的报文过滤与优先级处理机制 在嵌入式系统开发中,CAN总线通信的稳定性和效率往往决定了整个系统的性能表现。许多工程师在配置CAN模块时,常常将注意力集中在波特率设置等基础参数上,却忽略了报…...
深入RPMsg-Lite virtqueue:拆解异构多核芯片共享内存通信的‘黑盒子’
深入RPMsg-Lite virtqueue:拆解异构多核芯片共享内存通信的‘黑盒子’ 在现代异构多核芯片设计中,核间通信(IPC)的效率直接决定了系统整体性能。当你在调试一个基于NXP i.MX RT1170的双核系统时,是否曾好奇过ÿ…...
CANN/asc-devkit DeepNorm API 文档
DeepNorm 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/c…...
免费开源乐谱识别神器Audiveris:三步将纸质乐谱转为数字格式
免费开源乐谱识别神器Audiveris:三步将纸质乐谱转为数字格式 【免费下载链接】audiveris Latest generation of Audiveris OMR engine 项目地址: https://gitcode.com/gh_mirrors/au/audiveris 你是否曾面对一叠纸质乐谱,渴望将它们转换成可编辑的…...
淘宝淘金币自动化脚本:5分钟完成每日任务,解放双手的时间管理方案
淘宝淘金币自动化脚本:5分钟完成每日任务,解放双手的时间管理方案 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本,包含蚂蚁森林收取能量,芭芭农场全任务,解放你的双手 项目地址: https://gitcode.com/gh_mirrors…...
深入YOLOv8损失函数:为什么自带的Focal Loss会报错?一次完整的源码调试与修复记录
深入YOLOv8损失函数:为什么自带的Focal Loss会报错?一次完整的源码调试与修复记录 在目标检测领域,YOLOv8凭借其卓越的性能和易用性赢得了广泛关注。然而,当开发者尝试深入模型内部机制时,往往会遇到一些意料之外的挑战…...
北京理工大学:数据中心节能降碳之算电协同——背景、技术、实践和展望 2026
这份由北京理工大学 2026 年初发布的《数据中心节能降碳之算电协同:背景、技术、实践和展望》报告,围绕算电协同,从背景、技术、实践、展望四方面系统分析,核心是推动算力与电力、热力深度融合,助力数据中心节能降碳、…...
全面配置指南:Excel MCP Server高效部署与专业运维实战
全面配置指南:Excel MCP Server高效部署与专业运维实战 【免费下载链接】excel-mcp-server A Model Context Protocol server for Excel file manipulation 项目地址: https://gitcode.com/gh_mirrors/ex/excel-mcp-server Excel MCP Server是一个强大的模型…...
6-英语不好,能学习嵌入式吗?
文/一只会飞的猫 本文为原创作品,收录于独家专栏:《嵌入式入行认知指南,避开99%的入行弯路》 已加入原创侵权保护,未经同意,禁止任何形式的搬移/转载/改编等,违者必究! 与两千多位想要学习嵌入式的同学交流过程中,总能被问到这个问题: “我英语四级都没过,单词记不住…...
百考通:AI让每一份调研与设计都高效落地
在数字化时代,市场调研、产品设计、学术研究等场景中,问卷设计作为核心环节,直接影响着数据收集的质量与工作推进的效率。传统问卷设计往往面临流程繁琐、耗时耗力、问题设计不精准等痛点,而百考通(https://www.baikao…...
