add
This commit is contained in:
parent
3c231d2345
commit
f72bb3069a
@ -33,6 +33,5 @@ public class Q150 {
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(new Q150().maxPoints(new int[][]{{1, 1}, {3, 2}, {5, 3}, {4, 1}, {2, 3}, {1, 4}}));
|
||||
}
|
||||
}
|
||||
|
@ -29,6 +29,5 @@ public class Q290 {
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(new Q290().firstBadVersion(16));
|
||||
}
|
||||
}
|
||||
|
27
5.leetcode/src/com/fanxb/common/Q56.java
Normal file
27
5.leetcode/src/com/fanxb/common/Q56.java
Normal file
@ -0,0 +1,27 @@
|
||||
package com.fanxb.common;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
public class Q56 {
|
||||
public int[][] merge(int[][] intervals) {
|
||||
Arrays.sort(intervals, Comparator.comparingInt(a -> a[0]));
|
||||
int length = intervals.length, count = 0;
|
||||
int[][] res = new int[intervals.length][2];
|
||||
int[] startArr = intervals[0];
|
||||
for (int i = 1; i < length; i++) {
|
||||
int[] temp = intervals[i];
|
||||
if (temp[0]<=startArr[1]) {
|
||||
//可以开始合并
|
||||
startArr[1] = Math.max(startArr[1], temp[1]);
|
||||
} else {
|
||||
res[count++] = startArr;
|
||||
startArr = temp;
|
||||
}
|
||||
}
|
||||
res[count++] = startArr;
|
||||
return Arrays.copyOf(res, count);
|
||||
}
|
||||
}
|
61
5.leetcode/src/com/fanxb/common/Q57.java
Normal file
61
5.leetcode/src/com/fanxb/common/Q57.java
Normal file
@ -0,0 +1,61 @@
|
||||
package com.fanxb.common;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class Q57 {
|
||||
public int[][] insert(int[][] intervals, int[] newInterval) {
|
||||
int length = intervals.length, i = 0, count = 0;
|
||||
int[][] res = new int[length + 1][2];
|
||||
if (intervals.length == 0) return new int[][]{newInterval};
|
||||
if (newInterval[1] < intervals[0][0]) {
|
||||
//说明放到最前面
|
||||
res[count++] = newInterval;
|
||||
for (int[] num : intervals) res[count++] = num;
|
||||
return res;
|
||||
}
|
||||
if (newInterval[0] > intervals[length - 1][1]) {
|
||||
//说明放到最后
|
||||
for (int[] num : intervals) res[count++] = num;
|
||||
res[count++] = newInterval;
|
||||
return res;
|
||||
}
|
||||
for (; i < length; i++) {
|
||||
//开始找开始插入的位置
|
||||
if (intervals[i][1] >= newInterval[0]) {
|
||||
if (newInterval[1] < intervals[i][0]) {
|
||||
//说明无交叉,新的放到i前面
|
||||
res[count++] = newInterval;
|
||||
for (; i < length; i++) res[count++] = intervals[i];
|
||||
return res;
|
||||
}
|
||||
break;
|
||||
} else {
|
||||
res[count++] = intervals[i];
|
||||
}
|
||||
}
|
||||
//有交叉,从i开始进行合并
|
||||
int[] start = new int[]{Math.min(intervals[i][0], newInterval[0]), Math.max(intervals[i][1], newInterval[1])};
|
||||
i++;
|
||||
for (; i < length; i++) {
|
||||
int[] temp = intervals[i];
|
||||
if (temp[0] <= start[1]) {
|
||||
//说明存在重叠,进行合并
|
||||
start[1] = Math.max(temp[1], start[1]);
|
||||
} else {
|
||||
//说明不存在重叠了,
|
||||
res[count++] = start;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == length) {
|
||||
//说明循环完了
|
||||
res[count++] = start;
|
||||
} else {
|
||||
//说明还有一段没合并完
|
||||
for (; i < length; i++) {
|
||||
res[count++] = intervals[i];
|
||||
}
|
||||
}
|
||||
return Arrays.copyOf(res, count);
|
||||
}
|
||||
}
|
@ -24,6 +24,5 @@ public class Q73 {
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(new Q73().minDistance("horse", "ros"));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user