Java合并區(qū)間的實(shí)現(xiàn)
問(wèn)題:
以數(shù)組 intervals 表示若干個(gè)區(qū)間的集合,其中單個(gè)區(qū)間為 intervals[i] = [starti, endi] 。請(qǐng)你合并所有重疊的區(qū)間,并返回 一個(gè)不重疊的區(qū)間數(shù)組,該數(shù)組需恰好覆蓋輸入中的所有區(qū)間 。
示例:
示例 1:
輸入:intervals = [[1,3],[2,6],[8,10],[15,18]]
輸出:[[1,6],[8,10],[15,18]]
解釋?zhuān)簠^(qū)間 [1,3] 和 [2,6] 重疊, 將它們合并為 [1,6].
示例 2:
輸入:intervals = [[1,4],[4,5]]
輸出:[[1,5]]
解釋?zhuān)簠^(qū)間 [1,4] 和 [4,5] 可被視為重疊區(qū)間。
提示:
- 1 <= intervals.length <= 104
- intervals[i].length == 2
- 0 <= starti <= endi <= 104
思路: 首先對(duì)所有區(qū)間進(jìn)行排序,使其變成有序區(qū)間,然后分別取每個(gè)區(qū)間的元素,如果當(dāng)前end值不大于下一個(gè)區(qū)間的start就將其加入數(shù)組中,否則就進(jìn)行比較,最大的值作為end值,具體步驟如代碼所示。
代碼:
class Solution {
public int[][] merge(int[][] intervals) {
int n = intervals.length;
//先對(duì)數(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ū)間的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java合并區(qū)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java+selenium實(shí)現(xiàn)自動(dòng)化打開(kāi)頁(yè)面的方法
今天小編就為大家分享一篇java+selenium實(shí)現(xiàn)自動(dòng)化打開(kāi)頁(yè)面的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
mybatis注解之@Mapper和@MapperScan的使用
這篇文章主要介紹了mybatis注解之@Mapper和@MapperScan的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
JAVA Iterator 轉(zhuǎn)成 List 的操作
這篇文章主要介紹了JAVA Iterator 轉(zhuǎn)成 List 的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
SpringCloud實(shí)現(xiàn)全鏈路灰度發(fā)布的示例詳解
灰度發(fā)布是指在軟件或服務(wù)發(fā)布過(guò)程中,將新版本的功能或服務(wù)以較小的比例引入到生產(chǎn)環(huán)境中,僅向部分用戶或節(jié)點(diǎn)提供新功能的一種發(fā)布策略,下面我們就來(lái)學(xué)習(xí)一下SpringCloud如何實(shí)現(xiàn)全鏈路灰度發(fā)布2023-11-11
Java傳入用戶名和密碼并自動(dòng)提交表單實(shí)現(xiàn)登錄到其他系統(tǒng)的實(shí)例代碼
這篇文章主要介紹了Java傳入用戶名和密碼并自動(dòng)提交表單實(shí)現(xiàn)登錄到其他系統(tǒng),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-01-01
Java遠(yuǎn)程debug調(diào)試的操作步驟
日常項(xiàng)目中,通常我們的代碼都是部署到遠(yuǎn)程的服務(wù)器,有時(shí)線上出現(xiàn)了問(wèn)題,經(jīng)常需要我們?cè)黾右恍┤罩緛?lái)排查問(wèn)題,但是如果是測(cè)試環(huán)境的場(chǎng)景下或者我們能進(jìn)行遠(yuǎn)程調(diào)試的話,我們就可以使用遠(yuǎn)程的Debug方式進(jìn)行遠(yuǎn)程調(diào)試,下面給大家介紹一下Java遠(yuǎn)程debug調(diào)試的操作步驟2025-04-04
詳解Spring Boot整合Mybatis實(shí)現(xiàn) Druid多數(shù)據(jù)源配置
本篇文章主要介紹了詳解Spring Boot整合Mybatis實(shí)現(xiàn) Druid多數(shù)據(jù)源配置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03

