Java合并區(qū)間的實現(xiàn)
問題:
以數(shù)組 intervals 表示若干個區(qū)間的集合,其中單個區(qū)間為 intervals[i] = [starti, endi] 。請你合并所有重疊的區(qū)間,并返回 一個不重疊的區(qū)間數(shù)組,該數(shù)組需恰好覆蓋輸入中的所有區(qū)間 。
示例:
示例 1:
輸入:intervals = [[1,3],[2,6],[8,10],[15,18]]
輸出:[[1,6],[8,10],[15,18]]
解釋:區(qū)間 [1,3] 和 [2,6] 重疊, 將它們合并為 [1,6].
示例 2:
輸入:intervals = [[1,4],[4,5]]
輸出:[[1,5]]
解釋:區(qū)間 [1,4] 和 [4,5] 可被視為重疊區(qū)間。
提示:
- 1 <= intervals.length <= 104
- intervals[i].length == 2
- 0 <= starti <= endi <= 104
思路: 首先對所有區(qū)間進(jìn)行排序,使其變成有序區(qū)間,然后分別取每個區(qū)間的元素,如果當(dāng)前end值不大于下一個區(qū)間的start就將其加入數(shù)組中,否則就進(jìn)行比較,最大的值作為end值,具體步驟如代碼所示。
代碼:
class Solution {
public int[][] merge(int[][] intervals) {
int n = intervals.length;
//先對數(shù)組進(jìn)行排序
Arrays.sort(intervals,(a,b)->a[0] - b[0]);
List<int[]> list = new ArrayList<>();
int starti = -1;
int endi = -1;
for(int[] inertval : intervals){
if(endi < inertval[0]){
if(starti != -1){
list.add(new int[]{starti,endi});
}
starti = inertval[0];
endi = inertval[1];
} else {
endi = Math.max(endi,inertval[1]);
}
}
list.add(new int[]{starti,endi});
int[][] ans = new int[list.size()][2];
for(int i = 0; i < ans.length; i++){ans[i] = list.get(i);}
return ans;
}
}到此這篇關(guān)于Java合并區(qū)間的實現(xiàn)的文章就介紹到這了,更多相關(guān)Java合并區(qū)間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
idea新建Springboot項目,設(shè)置默認(rèn)maven和jdk版本方式
這篇文章主要介紹了idea新建Springboot項目,設(shè)置默認(rèn)maven和jdk版本方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
Java語言簡介(動力節(jié)點Java學(xué)院整理)
Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強(qiáng)大和簡單易用兩個特征,下面通過本文給大家分享java語言的簡介,感興趣的朋友一起看看吧2017-03-03
MyBatis查詢結(jié)果resultType返回值類型的說明
這篇文章主要介紹了MyBatis查詢結(jié)果resultType返回值類型的說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
MyBatis中使用分頁插件PageHelper實現(xiàn)分頁功能
分頁是經(jīng)常使用的功能,本文主要介紹了Mybatis中處理特殊SQL處理邏輯,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
Springboot整合WebSocket實戰(zhàn)教程
WebSocket使得客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡單,允許服務(wù)端主動向客戶端推送數(shù)據(jù),這篇文章主要介紹了Springboot整合WebSocket實戰(zhàn)教程,需要的朋友可以參考下2023-05-05
Spring @Cacheable redis異常不影響正常業(yè)務(wù)方案
這篇文章主要介紹了Spring @Cacheable redis異常不影響正常業(yè)務(wù)方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
SpringBoot使用@Autowired為多實現(xiàn)的接口注入依賴
這篇文章主要介紹了SpringBoot使用@Autowired為多實現(xiàn)的接口注入依賴,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
如何使用spring-ws發(fā)布webservice服務(wù)
文章介紹了如何使用Spring-WS發(fā)布Web服務(wù),包括添加依賴、創(chuàng)建XSD文件、生成JAXB實體、配置Endpoint、啟動服務(wù)等步驟,結(jié)合實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-11-11

