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的感觉 |