代码随想录 Day-23

力扣题目 406.根据身高重建队列

思路

这里可以看出来是有两个维度考虑,和力扣题目 135.分发糖果(可以看我day-22的文章) 有点类似。

因此遇到这种两个维度权衡的时候,一定是先考虑一个维度再按照另一个维度来重新考虑排序。

两个维度一起考虑一定会顾此失彼。

  • 局部最优:优先按身高来排序,再按照k的大小来排序
  • 全局最优:最后完成按k插入操作,整个队列,满足题目队列的属性

class Solution {public int[][] reconstructQueue(int[][] people) {//先按身高来排序Arrays.sort(people, (o1,o2)->{//h升高相同时if(o1[0] == o2[0])return o1[1] - o2[1];   //这里是当h身高相同时,按k的升序排序//h身高不相同时,则按降序来排序return o2[0] - o1[0];});LinkedList<int[]> queue = new LinkedList<>();for(int[] person : people){//LinkedList.add(index, value),会将value 插入到指定index里queue.add(person[1],person);}//记得转化为数组return queue.toArray(new int[people.length][]);}
}

Tips:

对于插入和删除操作,LinkedList优于ArrayList,因为当元素被添加到LinkedList任意位置的时候,不需要像ArrayList那样重新计算大小或者是更新索引

要是对Lambda表达式不熟悉的可以点击下方链接跳转学习

JDK之Arrays的Lambda表达式


力扣题目 452.用最少数量的剪引爆气球

class Solution {public int findMinArrowShots(int[][] points) {//做一个剪枝if(points.length == 0)return 0;//首先按照start来排序Arrays.sort(points, (o1, o2) -> //{return o1[0] - o2[0];}   //按照start的升序来排序Integer.compare(o1[0], o2[0]));//因为是i与i-1比较,所以需要i初始值为1,才不会出现负值//既然i初始值不为0,那么result初始值应该是1int result = 1; //i的start的与i-1的end比较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], points[i-1][1]);}return result;}
}

 要是对Lambda表达式不熟悉的可以点击下方链接跳转学习

JDK之Arrays的Lambda表达式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/762539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

innodb 的 buffer pool 管理 page

page 页结构 page是整个InnoDB存储的最基本构件&#xff0c;也是InnoDB磁盘管理的最小单位&#xff0c;与数据库相关的所有内容都存储在这种Page结构里。 Page分为几种类型&#xff0c;常见的页类型有 数据页(Btree Node)Undo页(Undo Log Page)系统页(System Page)事务数据页 …

PC显示字体和浏览器的字体不一致

1&#xff1a;设置了PC的区域&#xff0c;显示字符&#xff0c; 2&#xff1a;导致浏览器显示的字符一半大一半小 3&#xff1a;为什么去设置这个&#xff0c;因为担心封号 4&#xff1a;不让它检测出我是他大佬

【C++初阶】第七站:string类的初识(万字详解、细节拉满)

前言&#xff1a; &#x1f4cd;本文知识点&#xff1a;string的初识 &#x1f4a8;个人博客:Dream_Chaser&#xff5e;-CSDN博客 &#x1f6a9;本专栏&#xff1a;C 目录 一、什么是STL 二、STL的六大组件 三、STL的缺陷 四、为什么学习string类&#xff1f; 五、标准库中…

云ERP vs 本地ERP:优劣对比与选择指南

在性能方面&#xff0c;本地ERP需要需要较高级别的计算机系统和其他设备来确保其高效运行。如果企业的计算机设备不够先进&#xff0c;那么选择本地ERP可能导致系统性能下降。而云ERP解决方案则能保证性能&#xff0c;只要企业拥有稳定的互联网连接即可。 在成本方面&#xff0…

Linux的基本使用

1.Linux的背景 1.1什么Linux Linux是⼀个操作系统.和Windows是"并列"的关系. 1.2Linux系统的优势 1. 开源(意味着免费,便宜) 2. 稳定(Linux可以运⾏很多年,都不会发⽣重⼤问题) 3. 安全(Linux只有管理员或者特定⽤⼾才能访问Linux内核) 4. ⾃由(不会被强加商业产品和…

EasyCloud软件简介

运行环境&#xff1a;Win10 PCL1.9 VTK8.1 Qt5.12 VS2017 基于PCL点云库的三维点云数据处理软件 1&#xff0e;软件用户界面 本软件的用户界面主要包括以下几个部分&#xff08;如图1&#xff09;&#xff1a; [1]菜单栏&#xff0c;将软件功能模块划分为不同菜单&…

JAVA八股--集合面试题

AVA八股--集合面试题--上 java只有值传递&#xff0c;没有引用传递代理模式Java之HashMap和Hashtable选用 ArrayDeque 来实现队列要比 LinkedList 更好为什么HashMap的长度一定是2的次幂&#xff1f;HashMap常见遍历方式 java只有值传递&#xff0c;没有引用传递 文章讲解 文…

第四讲 Buffer Pool

问题&#xff1a;DBMS 是如何管理其内存和磁盘之间来回移动数据的&#xff1f; 答案&#xff1a;在决定如何在磁盘中来回移动数据时&#xff0c;我们必须考虑两个关键方面&#xff1a; 空间控制【Spatial Control】&#xff1a; 将页【pages】写在在磁盘的什么地方&#xff…

vsc ctrl+. 无效的问题

描述 ubuntu ibus 输入法 vsc ctrl.快捷键无效 输出 _e 解决方案: 运行 ibus-setup 把表情符号这里的快捷键改了

mysql 空间查询 多边形内的点

数据库查询 # 1新增空间point类型坐标字段 ALTER TABLE gaoxin_isdp.business_master ADD COLUMN location2 point NULL AFTER location;# 2从原字段更新点位字段&#xff0c;原字段poi1是字符串106.474596,29.464360 UPDATE business_master SET location POINT(substr(poi…

基于Springboot+Vue的前后端分离的简单Demo案例(一)

后端创建Springboot项目 创建数据库表结构及表信息 添加依赖&#xff08;pom.xml&#xff09; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/X…

微服务网关介绍

1. 为什么是Spring Cloud Gateway 一句话&#xff0c;Spring Cloud已经放弃Netflix Zuul了。现在Spring Cloud中引用的还是Zuul 1.x版本&#xff0c;而这个版本是基于过滤器的&#xff0c;是阻塞IO&#xff0c;不支持长连接。Zuul 2.x版本跟1.x的架构大一样&#xff0c;性能也有…

GraalVM详细安装及打包springboot、java、javafx使用教程(打包普通JAVA项目篇)

前言 在当前多元化开发环境下&#xff0c;Java作为一种广泛应用的编程语言&#xff0c;其应用部署效率与灵活性的重要性日益凸显。Spring Boot框架以其简洁的配置和强大的功能深受开发者喜爱&#xff0c;而JavaFX则为开发者提供了构建丰富桌面客户端应用的能力。然而&#xff…

Python模块与包管理使用pip与virtualenv【第151篇—模块与包管理】

Python模块与包管理&#xff1a;使用pip与virtualenv 在Python开发中&#xff0c;模块和包管理是至关重要的&#xff0c;它们使得代码的组织、重用和共享变得更加简单和高效。本文将介绍两个Python生态系统中最常用的工具&#xff1a;pip和virtualenv。通过这些工具&#xff0…

探索医用制氧机的种类及其应用场景

医用制氧机是一种能够制取高纯度氧气的制氧设备&#xff0c;广泛应用于各种场景。随着科技的进步和行业需求的增加&#xff0c;医用制氧机的种类和应用领域也在不断扩展。本文将探索医用制氧机的多元种类及其应用领域&#xff0c;以更好地了解这一设备的重要性。 一、医用制氧机…

java并发编程之 volatile关键字

1、简单介绍一下JMM Java 内存模型&#xff08;Java Memory Model 简称JMM&#xff09;是一种抽象的概念&#xff0c;并不真实存在&#xff0c;指一组规则或规范&#xff0c;通过这组规范定义了程序中各个变量的访问方式。java内存模型(JMM)屏蔽掉各种硬件和操作系统的内存访问…

快速区分清楚图形渲染中的AABB,KD树和BVH这些概念

快速区分清楚图形渲染中的AABB&#xff0c;KD树和BVH这些概念 主要想形象去区分好这些术语&#xff0c;目的是扫盲&#xff0c;先开好坑&#xff0c;内容持续填充。 0.先摆出这些词的全称 AABB&#xff1a; 原名&#xff1a;axis aligned bounding box&#xff1b;中文直译名…

流畅的 Python 第二版(GPT 重译)(二)

第三章&#xff1a;字典和集合 Python 基本上是用大量语法糖包装的字典。 Lalo Martins&#xff0c;早期数字游牧民和 Pythonista 我们在所有的 Python 程序中都使用字典。即使不是直接在我们的代码中&#xff0c;也是间接的&#xff0c;因为dict类型是 Python 实现的基本部分。…

科技助力高质量发展:新质生产力的崛起与企业数字化转型

引言 随着科技的飞速发展&#xff0c;我们正逐渐步入数字化智能时代&#xff0c;这个时代不仅为企业带来了无限的机遇&#xff0c;也让其面对前所未有的挑战。在这个快速变革的时代&#xff0c;企业必须不断调整自己的经营策略&#xff0c;适应数字化转型的浪潮&#xff0c;以…