剑指Offer题目笔记21(计数排序)

面试题74:

面试题74

问题:

​ 输入一个区间的集合,将重叠的区间合并。

解决方案:

​ 先将所有区间按照起始位置排序,然后比较相邻两个区间的结束位置就能知道它们是否重叠。如果它们重叠就将它们合并,然后判断合并的区间是否和下一个区间重叠。重复这个过程,直到所有重叠区间都合并为止。

源代码:
class Solution {public int[][] merge(int[][] intervals) {//按照起始位置排序Arrays.sort(intervals,(i1,i2) -> i1[0] - i2[0]);List<int[]> list = new ArrayList<>();int i = 0;while(i < intervals.length){//前区间int[] temp = new int[]{intervals[i][0],intervals[i][1]};int j = i + 1;//判断是否存在后区间,存在则判断后区间起始位置是否小于或等于前区间的终止位置while(j < intervals.length && intervals[j][0] <= temp[1]){//重叠区间的终止位置由前区间和后区间的终止位置的最大值决定temp[1] = Math.max(intervals[j][1],temp[1]);j++;}list.add(temp);i = j;}int[][] result = new int[list.size()][];return list.toArray(result);}
}

面试题75:

面试题75

问题:

​ 输入两个数组arr1和arr2,将数组arr1中的数字按照数组arr2中的数字的相对顺序排序。如果数组arr1中的数字在arr2中没有出现,那么将这些数字按递归的顺序排在后面。

解决方案:

​ 使用计数排序。先统计arr1中的每个整数在数组中出现的次数记为counts,然后按照arr2的顺序将每个整数按照它出现的次数填入到数组中,扫描完arr2数组后,继续扫描counts数组,如果counts数组中出现整数出现次数不为0时,将每个整数按照它出现的次数填入到arr2数组中。

源代码:
class Solution {public int[] relativeSortArray(int[] arr1, int[] arr2) {int[] counts = new int[1001];for(int num:arr1){counts[num]++;}int i = 0;//扫描arr2数组for(int num:arr2){while(counts[num] > 0){arr1[i++] = num;counts[num]--;}}//扫描counts数组for(int num = 0;num < counts.length;num++){while(counts[num] > 0){arr1[i++] = num;counts[num]--;}}return arr1;}
}

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

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

相关文章

精选2024年最佳项目管理系统!实用推荐与详细评测

随着企业规模的扩大&#xff0c;项目量也会呈几何倍的增长&#xff0c;项目管理系统就成了企业管理必不可少的一部分。2024年优秀的项目管理系统推荐。今年为大家带来Microsoft Project、Zoho Projects、Jira以及Wrike项目管理系统评测。 什么是项目管理系统&#xff1f; 项目…

怎么更新sd-webui AUTOMATIC1111/stable-diffusion-webui ?

整个工程依靠脚本起来的&#xff1a; 可直接到stable-diffusion-webui子目录执行&#xff1a; git pull更新代码完毕后&#xff0c;删除venv的虚拟环境。 然后再次执行webui.sh&#xff0c;这样会自动重新启动stable-diffusion-webui.

springboot心灵治愈交流平台

摘 要 本论文主要论述了如何使用JAVA语言开发一个心灵治愈交流平台 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述心灵治愈交流平台的当前背景以及系统开发的…

代码随想录算法训练营第三十二天|leetcode738题

一、leetcode第738题 本题要求返回小于等于给定数字且从最高位到最低位呈单调递增的数值&#xff0c;需要从最低位向最高位遍历&#xff0c;如果最低位比其前一位小则若要使改变后数值最大需要将前一位作减一操作并记录下当前位&#xff0c;在遍历结束后将记录的当前位之后的所…

啥是MCU,MCU科普

啥是MCU&#xff0c;MCU科普 附赠自动驾驶学习资料和量产经验&#xff1a;链接 MCU是Microcontroller Unit 的简称&#xff0c;中文叫微控制器&#xff0c;俗称单片机&#xff0c;是把CPU的频率与规格做适当缩减&#xff0c;并将内存、计数器、USB、A/D转换、UART、PLC、DMA等…

Leetcode 42.接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图&#x…

多线程(19)活锁和线程饥饿

活锁&#xff08;Livelock&#xff09;和线程饥饿&#xff08;Thread Starvation&#xff09;是并发编程领域中两个至关重要且常见的问题。理解这两个概念&#xff0c;以及它们如何影响程序的执行和系统的性能&#xff0c;对于开发能够有效并行处理任务的应用程序至关重要。 1…

发表SCI论文对作者学位职位有要求吗?

SCI论文是被SCI(Scientific Citation Index&#xff0c;《科学引文索引》)收录的期刊所刊登的论文。能够在SCI上成功发表论文是证明作者的一定的能力被国际研究界所认可&#xff0c;国内的很多科研人员因此对其也是非常向往的。 那么发表SCI论文对作者学位职位有要求吗? 通常…

基于单片机智能输液器监控系统的设计

**单片机设计介绍&#xff0c;基于单片机智能输液器监控系统的设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机智能输液器监控系统的设计旨在实现对输液过程的实时监测和控制&#xff0c;以提高输液的安全性和疗效…

香港服务器与SEO的关系(香港服务器对SEO影响大吗?)

香港服务器与 SEO 的关系是一个备受关注的话题&#xff0c;不少站长在选择了香港服务器后&#xff0c;便会疑问&#xff1a;香港服务器对SEO的影响是否显著?那么&#xff0c;在这里就跟大家聊聊两者的关系以及影响大小。 其实&#xff0c;不少站长对 SEO 的这种担忧和想法是片…

发生播放错误,即将重试 jellyfin

上周在家里的小主机上部署了jellyfin&#xff0c;真香&#xff0c;手机安卓端使用无问题&#xff0c;于是今天准备在电视上安装一个 首先是直接安装的手机版客户端&#xff0c;操作卡顿&#xff0c;而且很多操作没法实现&#xff0c;于是去下了一个tv版本 安装上后发现&#…

R语言数据分析基础(一)

在R中&#xff0c;读取和操作Excel文件最常用的readxl包&#xff0c;可以读取Excel文件&#xff0c;writexl包可以写入Excel文件。以下是常见的操作&#xff1a; 安装和加载包 首先&#xff0c;需要安装和加载readxl和writexl包。 install.packages("readxl") ins…

InternLM2-lesson1

书生浦语大模型全链路开源体系 课程视频&#xff1a;https://www.bilibili.com/video/BV1Vx421X72D/ 开源历程 全面开源&#xff0c;免费商用&#xff01;&#xff01;&#xff01; internlm2模型体系 internlm2根据参数量可以分为7B和20B两个大的版本&#xff0c;每个大的…

Kubernetes篇(二)— 集群环境搭建

目录 前言一、 环境规划集群类型安装方式主机规划 二、环境搭建主机安装环境初始化安装docker安装kubernetes组件准备集群镜像集群初始化安装网络插件 三、 服务部署 前言 本章节主要介绍如何搭建kubernetes的集群环境 一、 环境规划 集群类型 kubernetes集群大体上分为两类…

qt窗口的应用与pyinstaller打包APP操作

3月29日 qt打包APP操作 1 先在windows shell 中下载打包软件Pylnstaller pip install pyinstaller2 先进入py项目所在的位置&#xff0c;再执行以下代码(我用的qt版本是PySide6可以根据自己的情况修改) pyinstaller s02.py --noconsole --hidden-import PySide6.QtXml3 因为…

软件设计不是CRUD(16):低耦合模块设计理论——行为抽象与设计模式(下)

(接上文《软件设计不是CRUD(15):低耦合模块设计理论——行为抽象与设计模式(中)》) 3.2.4、之前的业务逻辑需要关注后续逻辑的执行成败,并调整自身执行的情况 这个场景在之前场景的基础上增加了新的控制要求,具体来说就是之前已经完成的控制逻辑执行,需要在后续控制…

以太网/USB 数据采集卡 24位16通道 labview 256K同步采样

XM7016以太网SUB数据采集卡 XM7016是一款以太网/USB高速数据采集卡&#xff0c;具有16通道真差分输入&#xff0c;24位分辨率&#xff0c;单通道最高采样率256ksps. 16通道同步共计4.096Msps、精密前置增益放大、集成IEPE/ICP硬件支持的特点。本产品采用了多个高精度24位ADC单元…

leetcode-链表算法题

leetcode-链表算法题 237.删除链表中的节点 题目地址 有一个单链表的 head&#xff0c;我们想删除它其中的一个节点 node。 给你一个需要删除的节点 node 。你将 无法访问 第一个节点 head。 链表的所有值都是 唯一的&#xff0c;并且保证给定的节点 node 不是链表中的最后一个…

如何使用 WebView 将 React Native 嵌入到原生应用中

创建 React Native Web Bundle&#xff1a; 首先&#xff0c;需要使用 React Native CLI 或 Expo CLI 构建 React Native 的 Web bundle。你可以使用以下命令来构建 Web bundle&#xff1a; npx react-native bundle --platform web --entry-file index.js --bundle-output ./…

有趣且重要的JS知识合集(21)浏览器内置对象讲解之Dom篇

1、Dom 1.1、概念 Document Object Model&#xff08;文档对象模型&#xff09;, 整个WEB页面, 所有的Dom元素都在Document整个文档里。DOM就是把整个文档页面当做一个对象进行操作, document 下 包含了 根据 html 创建 的 Dom 对象, 这个DOM对象, 以树形结构展示, 即DOM树 …