From f72bb3069af5ae29151ee9b23476eb987e2ded51 Mon Sep 17 00:00:00 2001 From: fleyx Date: Mon, 19 Feb 2024 21:20:38 +0800 Subject: [PATCH] add --- 5.leetcode/src/com/fanxb/common/Q150.java | 1 - 5.leetcode/src/com/fanxb/common/Q290.java | 1 - 5.leetcode/src/com/fanxb/common/Q56.java | 27 ++++++++++ 5.leetcode/src/com/fanxb/common/Q57.java | 61 +++++++++++++++++++++++ 5.leetcode/src/com/fanxb/common/Q73.java | 1 - 5 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 5.leetcode/src/com/fanxb/common/Q56.java create mode 100644 5.leetcode/src/com/fanxb/common/Q57.java diff --git a/5.leetcode/src/com/fanxb/common/Q150.java b/5.leetcode/src/com/fanxb/common/Q150.java index e90e546..2123433 100644 --- a/5.leetcode/src/com/fanxb/common/Q150.java +++ b/5.leetcode/src/com/fanxb/common/Q150.java @@ -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}})); } } diff --git a/5.leetcode/src/com/fanxb/common/Q290.java b/5.leetcode/src/com/fanxb/common/Q290.java index 969d8b8..0d167cc 100644 --- a/5.leetcode/src/com/fanxb/common/Q290.java +++ b/5.leetcode/src/com/fanxb/common/Q290.java @@ -29,6 +29,5 @@ public class Q290 { } public static void main(String[] args) { - System.out.println(new Q290().firstBadVersion(16)); } } diff --git a/5.leetcode/src/com/fanxb/common/Q56.java b/5.leetcode/src/com/fanxb/common/Q56.java new file mode 100644 index 0000000..deccf9d --- /dev/null +++ b/5.leetcode/src/com/fanxb/common/Q56.java @@ -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); + } +} diff --git a/5.leetcode/src/com/fanxb/common/Q57.java b/5.leetcode/src/com/fanxb/common/Q57.java new file mode 100644 index 0000000..12efcee --- /dev/null +++ b/5.leetcode/src/com/fanxb/common/Q57.java @@ -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); + } +} diff --git a/5.leetcode/src/com/fanxb/common/Q73.java b/5.leetcode/src/com/fanxb/common/Q73.java index 4715ffe..7021ce7 100644 --- a/5.leetcode/src/com/fanxb/common/Q73.java +++ b/5.leetcode/src/com/fanxb/common/Q73.java @@ -24,6 +24,5 @@ public class Q73 { } public static void main(String[] args) { - System.out.println(new Q73().minDistance("horse", "ros")); } }