由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - Insert Interval large case测试没过,怎么优化?
相关主题
leetcode 的 Insert Interval 就是过不了大的insert interval 没必要二分吧
JAVA里sort的algorithm time complexity是多少请教Merge Intervals 和 Insert Interval空间复杂度的选择。。。。
若问OJ的insert interval这题电面编程题的投机技巧
leetcode的online judge runtime error是指什么?3sum on LeetCode OJ
leetcode insert interval 为什么没人用binary search?请教一个leetcode OJ问题
leetcode 这题insert interval怎么做?Merge Interval 和 Insert Interval 需要用2分查找先定位到要merge的点么?
新鲜G面筋(Fail)Probability quesiton
f电面问个算法题, 关于区间 overlap的
相关话题的讨论汇总
话题: interval话题: arraylist话题: item话题: start
进入JobHunting版参与讨论
1 (共1页)
e******i
发帖数: 106
1
下面是我的代码。
我暂时还没有想好怎么优化,请各位大神不吝赐教!:)
/**
* Definition for an interval.
* public class Interval {
* int start;
* int end;
* Interval() { start = 0; end = 0; }
* Interval(int s, int e) { start = s; end = e; }
* }
*/
public class Solution {
public ArrayList insert(ArrayList intervals,
Interval newInterval) {
// Start typing your Java solution below
// DO NOT write main() function
ArrayList result = new ArrayList();
if(intervals.size() == 0){
result.add(newInterval);
return result;
}
for(Interval item:intervals){
if(item.end < newInterval.start){
result.add(item);
if(intervals.indexOf(item) == (intervals.size()-1)){
result.add(newInterval);
}
}
else if(item.start > newInterval.end){
if(!result.contains(newInterval)){
result.add(newInterval);
}
result.add(item);
}
else{
newInterval.start = Math.min(item.start, newInterval.start);
newInterval.end = Math.max(item.end, newInterval.end);
if(intervals.indexOf(item) == (intervals.size()-1)){
result.add(newInterval);
}
}
}

return result;
}
}
v*******n
发帖数: 41
2
public class Solution {
public ArrayList insert(ArrayList intervals,
Interval newInterval) {
// Start typing your Java solution below
// DO NOT write main() function
ArrayList result = new ArrayList();
if(intervals.size() == 0){
result.add(newInterval);
return result;
}
for(Interval item:intervals){
if(item.end < newInterval.start){
result.add(item);
if(intervals.indexOf(item) == (intervals.size()-1)){
result.add(newInterval);
}
}
else if(item.start > newInterval.end){
if(!result.contains(newInterval)){
result.add(newInterval);
}
result.add(item);
}
else{
newInterval.start = Math.min(item.start, newInterval.start);
newInterval.end = Math.max(item.end, newInterval.end);
}
}

if (result.isEmpty() || result.get(result.size()-1).end <
newInterval.start)
{
result.add(newInterval);
}

return result;
}
}
e******i
发帖数: 106
3

多谢!

【在 v*******n 的大作中提到】
: public class Solution {
: public ArrayList insert(ArrayList intervals,
: Interval newInterval) {
: // Start typing your Java solution below
: // DO NOT write main() function
: ArrayList result = new ArrayList();
: if(intervals.size() == 0){
: result.add(newInterval);
: return result;
: }

e******i
发帖数: 106
4

后来我改了下,大集合有一半没有过

【在 v*******n 的大作中提到】
: public class Solution {
: public ArrayList insert(ArrayList intervals,
: Interval newInterval) {
: // Start typing your Java solution below
: // DO NOT write main() function
: ArrayList result = new ArrayList();
: if(intervals.size() == 0){
: result.add(newInterval);
: return result;
: }

c*****a
发帖数: 808
5
这题我用merge interval的方法,把新的扔进去,然后做一次merge interval...
会不会有种cheating的感觉
1 (共1页)
进入JobHunting版参与讨论
相关主题
问个算法题, 关于区间 overlap的leetcode insert interval 为什么没人用binary search?
FB interview questionleetcode 这题insert interval怎么做?
Interval tree解法新鲜G面筋(Fail)
问个Facebook 电面题f电面
leetcode 的 Insert Interval 就是过不了大的insert interval 没必要二分吧
JAVA里sort的algorithm time complexity是多少请教Merge Intervals 和 Insert Interval空间复杂度的选择。。。。
若问OJ的insert interval这题电面编程题的投机技巧
leetcode的online judge runtime error是指什么?3sum on LeetCode OJ
相关话题的讨论汇总
话题: interval话题: arraylist话题: item话题: start