Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0 Star 0 Fork 0

徐云天/leetcode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
_57.java 2.05 KB
一键复制 编辑 原始数据 按行查看 历史
徐云天 提交于 2021-06-17 16:51 +08:00 . 增加57
public class _57 {
static class Solution {
//这题,边界条件能把脑子烧坏
public int[][] insert(int[][] intervals, int[] newInterval) {
int[] merge = new int[]{newInterval[0], newInterval[1]};
int x = -1;
int y = -1;
int s = newInterval[0];
int e = newInterval[1];
for (int i = 0; i < intervals.length; i++) {
if (s >= intervals[i][0] && s <= intervals[i][1]) {
x = i;
merge[0] = intervals[i][0];
} else if (s > intervals[i][1]) {
merge[0] = s;
x = i + 1;
}
if (e >= intervals[i][0] && e <= intervals[i][1]) {
merge[1] = intervals[i][1];
y = i;
} else if (e > intervals[i][1]) {
merge[1] = e;
y = i;
}
}
// System.out.println(String.format("x=%d,y=%d,merge[0] = %d,merge[1]=%d",x,y,merge[0],merge[1]));
int[][] res = null;
if (x == y && x == -1) {
res = new int[intervals.length + 1][2];
res[0] = newInterval;
System.arraycopy(intervals, 0, res, 1, intervals.length);
return res;
} else {
//[x,y]
if (x == -1) {
res = new int[intervals.length - y][2];
res[0] = merge;
System.arraycopy(intervals, y + 1, res, 1, res.length - 1);
} else {
res = new int[intervals.length - y + x][2];
if (x > 0) {
System.arraycopy(intervals, 0, res, 0, x);
}
if (y < intervals.length - 1) {
System.arraycopy(intervals, y + 1, res, x + 1, intervals.length - y - 1);
}
res[x] = merge;
}
}
return res;
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/xuyuntian/leetcode.git
git@gitee.com:xuyuntian/leetcode.git
xuyuntian
leetcode
leetcode
master