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

算法通关村-----贪心面试大热门之区间问题

判断区间是否重叠

问题描述

给定一个会议时间安排数组intervals,每个会议时间都包括开始时间和结束时间,intervals[i] = [starti,endi],请你判断一个人是否能够参加这里面的全部会议。详见leetcode252

问题分析

先将会议安排数组按照开始时间排序,判断是否有后一会议的开始时间是在前一结束时间之前,如有,则存在区间重叠,否则不存在。

代码实现

public boolean canAttendMeetings(int[][] intervals){Arrays.sort(intervals,(a,b)->a[0]-b[0]);for(int i=1;i<intervals.length;i++){if(intervals[i][0]<intervals[i-1][1]){return false;}}return true;
}

合并区间

问题描述

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。详见leetcode56

问题分析

创建一个与会议数组相同大小的结果数组,用于存放合并后结果。先将数组按照开始时间进行排序,将第一个会议数组元素放入结果数组中,从第二个会议元素开始,依次比较后一个会议数组元素的开始时间是否在前一会议数组结束时间之前,如是,取两者较小的开始时间作为合并后的开始时间,取两者较大的结束时间作为合并后的结束时间,放入结果数组中。

代码实现

public int[][] merge(int[][] intervals) {Arrays.sort(intervals,(a,b)->(a[0]-b[0]));int[][] res = new int[intervals.length][2];res[0] = intervals[0];int index = 0;for(int i=1;i<intervals.length;i++){if(intervals[i][0]<=res[index][1]){int start = Math.min(intervals[i][0],res[index][0]);int end = Math.max(intervals[i][1],res[index][1]);res[index][0] = start;res[index][1] = end;}else{index++;res[index] = intervals[i];}}return Arrays.copyOf(res,index+1);
}

插入区间

问题描述

给你一个 无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。详见leetcode57

问题分析

给定的区间列表已经是无重叠,按照区间起始端点排序,则我们自己不需要排序了,创建一个比给定区间列表长度大1的结果数组,当区间列表的结束时间小于带插入数组的开始时间时,直接将区间列表放入结果数组。当区间列表的开始时间大于等于带插入数组的开始时间,或者区间列表的结束时间大于等于带插入数组的结束时间(即带插入数组与区间列表有重叠时),可以将区间列表先统一合并到带插入数组,直至区间列表的开始时间大于带插入数组的结束时间,将带插入数组放入结果数组,将剩余的区间列表元素也放入带插入数组。

代码实现

public int[][] insert(int[][] intervals, int[] newInterval) {if(newInterval.length ==0){return intervals;}int[][] res = new int[intervals.length+1][2];if(intervals.length==0){res[0] = newInterval;return res;}int index = 0;int i = 0;while(index<intervals.length&&intervals[index][1]<newInterval[0]){res[i] = intervals[index];index++;i++;}while(index<intervals.length&&intervals[index][0]<=newInterval[1]){newInterval[0] = Math.min(intervals[index][0],newInterval[0]);newInterval[1] = Math.max(intervals[index][1],newInterval[1]);index++;}res[i++] = newInterval;while(index<intervals.length){res[i] = intervals[index];index++;i++;}return Arrays.copyOf(res,i);
}

相关文章:

算法通关村-----贪心面试大热门之区间问题

判断区间是否重叠 问题描述 给定一个会议时间安排数组intervals&#xff0c;每个会议时间都包括开始时间和结束时间,intervals[i] [starti,endi]&#xff0c;请你判断一个人是否能够参加这里面的全部会议。详见leetcode252 问题分析 先将会议安排数组按照开始时间排序&…...

OAK相机:自动或手动设置相机参数

OAK相机&#xff1a;自动或手动设置相机参数 硬件软件 硬件 使用硬件如下&#xff1a; 4✖️ov9782相机OAK-FFC-4P驱动板 硬件接线参考博主的一篇博客&#xff1a;OAK相机&#xff1a;多相机硬件同步拍摄 软件 博主使用的是Ubuntu18.04系统&#xff0c;首先配置所需的pytho…...

百家宴焕新上市,持续深耕100-300元价位段

执笔 | 尼 奥 编辑 | 古利特 4月8日&#xff0c;长江酒道曾在《百家宴谋划“晋级”之路&#xff0c;多措并举切分宴席市场“蛋糕”》一文中提到&#xff1a;“百家宴主力新品即将登场&#xff0c;市场政策灵活焕新。” 如今&#xff0c;百家宴新品及市场新政&#xff0c;正…...

Linux Debian12使用git将本地项目上传到码云(gitee)远程仓库

一、注册码云gitee账号 这个可以参考其他教程&#xff0c;本文不做介绍。 gitee官网&#xff1a;https://gitee.com/ 二、Linux Debian12安装git 如果Linux系统没有安装git&#xff0c;可以使用下面命令安装git sudo apt install git 三、gitee新建仓库 我这只做测试&…...

电子烟行业常用的英文表达

1. 电子烟的各种表达 a) 电子烟 i. Electronic-cigarette, ii. Electronic smoke, iii. electronic cigarettes iv. Electric cigarette, v. E-Cigarettes vi. e-cigarette, vii. e-Cig viii. E cigar,e-cigar 电子烟雪茄 2. 电子烟特指词汇及衍生 a) VAPE i. Vapo…...

【SpringMvc 丨跨域】

Spring MVC 支持跨域处理&#xff08;CORS&#xff09;。 CORS 简介处理CORS 过滤器CrossOrigin注解java配置xml配置 主页传送门&#xff1a;&#x1f4c0; 传送 简介 跨域是指在浏览器的同源策略下&#xff0c;不能执行其他网站的脚本。它是由浏览器的安全限制造成的&#xf…...

【C语言】【strlen函数的使用与模拟实现】

1.strlen函数的使用和模拟实现 1.1使用&#xff1a; size_t strlen(const char* str)返回类型为无符号整型&#xff0c;参数是字符指针 计算的是字符串中到“\0"之前的字符个数 1.2模拟实现&#xff1a; 方法一&#xff1a;计数器式遍历 #include<stdio.h> #in…...

类和对象【基础概念】

全文目录 类的定义定义方式 类的访问限定符封装&#xff08;面向对象的三大特性之一&#xff09; 类对象模型类对象的存储方式类对象的大小计算 this指针this指针的特性**this指针可以为空吗&#xff1f;** 类的定义 在C中&#xff0c;C语言中的结构体struct中除了定义变量外还…...

如何测试生成式人工智能(AIGC)

简介&#xff1a;在人工智能日趋普及的今天&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;已经成为不可忽视的一个分支。从自动化生成新闻、编写代码到图像和音频生成&#xff0c;AIGC几乎无处不在。但如何确保这些生成的内容达到预期标准、安全可靠&#xff0c;同时…...

机器学习算法详解3:逻辑回归

机器学习算法详解3&#xff1a;逻辑回归 前言 ​ 本系列主要对机器学习上算法的原理进行解读&#xff0c;给大家分享一下我的观点和总结。 本篇前言 ​ 本篇对逻辑回归的算法原理进行解读。 目录结构 文章目录 机器学习算法详解3&#xff1a;逻辑回归1. 引子2. sigmoid函数3. 原…...

linux命令集合

cd:切换文件路径 pwd:显示当前所处的路径 mkdir&#xff1a;创建目录比如mkdir test touch:创建一个空文件touch test.txt in:用于指定文件夹在另一个位置建立同步的链接in -s /lib/test1 /user/lj 在user目录下建立指向/lib/test1 目录的lj文件 cat:cat file(查看文件内…...

实现卓越供应链:RFID技术的革命性应用

在现代制造业中&#xff0c;供应链和物流的高效运作至关重要&#xff0c;它不仅影响着生产效率&#xff0c;还直接关系到企业的竞争力和客户满意度。为了应对这些挑战&#xff0c;越来越多的企业开始关注智能制造RFID智能设备&#xff0c;将其应用于供应链和物流管理&#xff0…...

从JVM角度看继承

从JVM角度看继承 最近重读了周志明老师的《深入理解JAVA虚拟机》一书&#xff0c;看完大有收获&#xff0c;但仍对继承情况下对象内存布局有所疑惑&#xff0c;所以查阅资料&#xff0c;结合本书进行分析 参考文档&#xff1a; 【深入理解JVM】&#xff1a;Java类继承关系中…...

基于Python和mysql开发的看图猜成语微信小程序(源码+数据库+程序配置说明书+程序使用说明书)

一、项目简介 本项目是一套基于Python和mysql开发的看图猜成语微信小程序&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含&#xff1a;项目源码、项目文档、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都…...

Unity入门教程||创建项目(上)

一、介绍 目的&#xff1a;通过尝试制作一款使用玩家角色把小球弹飞的简单小游戏&#xff0c;熟悉使用Unity进行游戏开发的基本流程。 软件环境&#xff1a;Unity 2017.3.0f3&#xff0c;Visual Studio 2013 二、创建新项目 1&#xff0c;启动Unity后将出现一个并列显示Pro…...

Openbmc编译

1.网址的问题解决 原文 Modifying /conf/local.conf was the only solution that worked for me. Simply add one of the two options:#check connectivity using google CONNECTIVITY_CHECK_URIS "https://www.google.com/"#skip connectivity checks CONNECTIVI…...

美国CN2服务器速度怎么样

美国服务器以免备案、大带宽、性价比高的优势&#xff0c;多用于企业、电商、外贸、视频等个中大型网站建设。但是&#xff0c;因中美服 务器接口原因&#xff0c;导致某些服务器的网络并不稳定&#xff0c;这时候就会对美国服务器产品失望&#xff0c;解决这种问题的方法就是选…...

K8S原理架构与实战教程

文章目录 一、背景1.1 物理机时代、虚拟机时代、容器化时代1.2 容器编排的需要 二、K8S架构2.2 Worker节点 三、核心概念3.1 Pod3.2 Deployment3.3 Service3.4 Volume3.5 Namespace 四、K8S安装五、kubectl常用命令六、K8S实战6.1 水平扩容6.2 自动装箱6.2.1 节点污点6.2.2 Pod…...

基于C#的图书管理系统数据库设计报告

第一章 问题描述 1.1 图书管理系统简介 本系统利用.NET处理数据库的功能&#xff0c;实现对图书馆信息的管理。主要功能为管理有关读者、出版社、书籍、借阅和管理者的信息等。 本系统的结构分为读者信息管理模块、出版社信息管理模块、书籍信息管理模块、借阅信息管理模块、…...

【Express.js】pm2进程管理

pm2进程管理 本节我们将介绍如何使用 pm2 运行和监管我们的 express 项目 准备工作 一个 express 项目全局安装 pm2 npm install -g pm2pm2使用介绍 启动应用 你可以用纯命令去运行一个node项目&#xff0c;假设原本运行项目使用 node src/index.js可以跑起来一个项目&am…...

Nginx部署前后端分离项目(Linux)

Nginx代理前端页面、后端接口 一、前端打包二、后端打包三、Linux部署Nginx启动、暂停、重启服务器部署文件地址&#xff1a; 一、前端打包 npm run build二、后端打包 通过Maven 使用package打包 三、Linux部署 安装Nginx 安装环境 yum -y install gcc pcre pcre-devel z…...

Docker网络

1 简介 网络原理 下载iproute工具&#xff08;linux&#xff09;ip addr查看地址映射 容器内ip地址会进行映射符号。docker分配的地址。 77: eth0if78: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:…...

第15章_瑞萨MCU零基础入门系列教程之Common I2C总线模块

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id728461040949 配套资料获取&#xff1a;https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总&#xff1a; ht…...

《TCP/IP网络编程》阅读笔记--多播与广播

目录 1--多播 2--多播代码实例 3--广播 4--广播代码实例 1--多播 多播方式的数据传输是基于 UDP 完成的&#xff0c;多播数据包的格式与 UDP 数据包相同&#xff1b; 多播与 UDP 的区别&#xff1a;UDP 数据传输以单一目标进行&#xff0c;多播数据同时传递到加入&#xff…...

聚观早报|华为Mate 60 Pro支持面容支付;特斯拉重回底特律车展

【聚观365】9月8日消息 华为Mate 60 Pro已支持面容支付 特斯拉将重回底特律车展 iPhone在美国有1.67亿用户 韩国半导体8月份出口85.6亿美元 比亚迪元PLUS冠军版将于9月15日上市 华为Mate 60 Pro已支持面容支付 毫无预热的华为Mate 60 Pro突然在华为商城首批开售&#xf…...

本地缓存Caffeine的缓存过期淘汰策略

本地缓存是一种将数据存储在应用程序的内存中&#xff0c;以加速数据访问的技术。缓存的数据可以是频繁访问的数据&#xff0c;以减少对慢速数据源&#xff08;如数据库或网络&#xff09;的访问。缓存通常有一些缓存过期淘汰策略&#xff0c;以确保缓存中的数据保持最新和有效…...

激光焊接汽车尼龙塑料配件透光率测试仪

激光塑性成型技术是近年来塑性加工界出现的一种新技术。通常塑料主要是通过加热加压依赖模具成型。这对于单品种、大批量生产是有效的&#xff1b;而对于各种不同形状的塑料制件则需要昂贵的模具‚装置也较庞大。 高度聚焦的激光束垂直照射在待变形的板料上‚由于塑料直接吸收激…...

2023年高校大数据实验室建设方案

大数据实验室建设方案具体内容包括&#xff1a;人才培养方案建设、课程资源建设、师资建设、实验室建设、教学服务建设。 泰迪打造国内领先的大数据人工智能及课程资源&#xff0c;包括&#xff1a;商务数据分析实训管理平台、云计算资源管理平台、大数据编程实训平台、商务数据…...

计网第五章(运输层)(一)

在前面的博客中&#xff0c;总是说主机之间进行通信。但实际上通信的真正的实体是位于通信两端主机中的进程。 一、运输层基本概述 运输层的任务就是为运行在不同主机上的应用进程提供直接的通信服务&#xff0c;运输层的协议又称为端到端协议。运输层中使用不同的端口来对应…...

ILS解析漏洞复现

搭建好ILS后&#xff0c;访问127.0.0.1:8000 写一个phpinfo的脚本 可以看到。现在是不能访问的 赋予 IIS 解析 phpinfo 能力 打开服务器管理器&#xff0c;打开 IIS 管理器 点击处理程序映射 再次访问&#xff0c;发现程序可以访问 将index.php改为index.png 此时php脚本自然是…...

网站数据维护/seo怎么做优化

本来准备上微软的SCOM 演示下system center2016的&#xff0c;顺便下一个windows 2016 RS15G的文件&#xff0c;2个小时过去了&#xff0c;还有2小时看样子绝对要过夜啊。然后搜了下其他开源的&#xff0c;发现了这货。Overview然后找了老牌监控软件MRTG, 全程Multi Router Tra…...

wordpress 隐藏后台/百度搜索引擎的优缺点

student a am ii ma a tnedutsi am a student代码具体思想1.将句子反转(不管单词拼写顺序)2.将各个单词分别反转为正确顺序源代码&#xff1a;#include#includevoid Reverse(char *left, char *right)//范围反转{char temp;while (left < right){temp *left;*left *right;…...

做么自己做一个网站/广告推广有哪些平台

LINUX学习笔记 Shell脚本_环境变量配置文件 1. 环境变量配置文件简介 2. 环境变量配置文件作用 3. 其他配置文件和登陆信息1. 环境变量配置文件简介 Source命令 强制性让当前的配置文件生效&#xff0c;不需要注销或者重新登陆 命令格式&#xff1a;source空格 配置文件 或者…...

建设工程合同纠纷案例典型案例/百度seo排名主要看啥

自智能手机开始普及以来&#xff0c;充电宝就开始出现在公众的视野里充电宝与智能手机目前最影响智能手机使用体验的问题是电池续航问题&#xff0c;如果电池技术方面没有创新那么充电宝也必将一直伴随着智能手机充电宝电路板充电宝是使用内置的锂电池作为电源&#xff0c;通过…...

西安外包公司排行/兰州网络推广优化怎样

我已经开始使用Python大约一个月了,我遇到了一些我想要更好理解的东西.它与进口有关.所以我有一个模块&#xff1a; root.core.connectivity 现在在这个模块中我定义了一个连接类.此模块还有一个__main__仅用于测试目的(不确定这是否有任何差异). 如果我这样做&#xff1a; fro…...

wordpress页面模板目录文件下载/长沙靠谱关键词优化公司电话

yum安装gitlab 时提示 "*.rpm is not signed"或者"*.rpm is not signed" &#xff0c;只需将 /etc/yum.conf 中 "gpgcheck1" 改为 "gpgcheck0" 即可。...