LeedCode每日一题7/22~7/23
分析:二维数组的特殊排序:(注意:集合可以不连续)
intervals[l][h]:l降序,h升序Arrays.sort(intervals, (o1, o2) -> o1[0] == o2[0] ? o1[1] - o2[1] : o2[0] - o1[0]);
intervals[l][h]:l升序,h降序Arrays.sort(intervals, (o1, o2) -> o1[0] == o2[0] ? o2[1] - o1[1] : o1[0] - o2[0]);//本题使用
intervals = [[4,9],[1, 2],[2, 4], [4, 5] ,[2, 3]] 进行二维数组排序的结果为 [[1, 2], [2, 4], [2, 3], [4, 9],[4,5]]。我们从右向左一次取出数字,当[4,5]满足时,[4,9]一定满足,而大区间满足,小区间不一定满足。
贪心算法:
此时仅有三种情况:(每次都取最小值a,b)
1.交集大小为2:此时不需要进行改动。有两个交集,条件为:intervals[i][1]>=b。
2.设置交集为1:仅仅需要添加一个值intervals[i][0],条件为:intervals[i][1]>=a
3.交集大小为0:条件为:intervals[i][1]
分析:本题的nums序列是唯一被确定的,所以必须严格按照nums序列的前后位置。因为位置被唯一确定,所以前后关系也被唯一的确定了,此时一定存在一个sequences[i]中的某一个前后位置完全贴合到nums序列中才能一一对应出来
7/23
共有 0 条评论