力扣经典面试题——合并区间
2023-12-13 05:35:04
合并区间
https://leetcode.cn/problems/merge-intervals/description/?envType=study-plan-v2&envId=top-interview-150
这题思维量一般但比较考察API的使用。
1、数组的自定义排序
2、数组的初始化定义
3、Arrays转int
通过重写Comparator的compare方法来自定义排序规则,返回的值看正负。
Arrays.sort(intervals,new Comparator<int[]>(){
public int compare(int[] a,int[] b){
return a[0]-b[0];
}
});
class Solution {
public int[][] merge(int[][] intervals) {
Arrays.sort(intervals,new Comparator<int[]>(){
public int compare(int[] a,int[] b){
return a[0]-b[0];
}
});
List<int[]> merge = new ArrayList<>();
merge.add(intervals[0]);
for(int i=1;i<intervals.length;i++){
int left = intervals[i][0];
int right = intervals[i][1];
int merge_left = merge.get(merge.size()-1)[0];
int merge_right = merge.get(merge.size()-1)[1];
if(left>=merge_left&&left<=merge_right){
int[] temp = {merge_left,Math.max(right,merge_right)};
merge.set(merge.size()-1,temp);
}else{
merge.add(intervals[i]);
}
}
//再转化成数组
return merge.toArray(new int[merge.size()][]);
}
}
文章来源:https://blog.csdn.net/qq_45816864/article/details/134939027
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!