c**z 发帖数: 669 | 1 public class Solution {
public List> threeSum(int[] num) {
Arrays.sort(num);
List> ret = new ArrayList>();
for( int i=0 ;i
{
int j=i+1;
int k=num.length - 1;
while(j
{
int sum = num[i] + num[j] + num[k];
if ( sum == 0)
{
ArrayList temp = new ArrayList();
temp.add(num[i]);
temp.add(num[j]);
temp.add(num[k]);
if ( !ret.contains(temp) )
{
ret.add(temp);
}
j++;
k--;
}
else if ( sum <0)
{
j++;
}
else
{
k--;
}
}
}
return ret;
}
} |
k****i 发帖数: 128 | 2 类似code我得到Output Limit Exceeded |
w********n 发帖数: 4752 | 3 You need to consider case in which two neighering numbers are the same. |
w********n 发帖数: 4752 | 4 because a number may appear many times.
【在 k****i 的大作中提到】 : 类似code我得到Output Limit Exceeded
|
T******e 发帖数: 157 | 5 ret.contains(temp)
这个方法的复杂度是什么,感觉会花不少时间 |
c**z 发帖数: 669 | |
T******e 发帖数: 157 | 7 ret.contains(temp)
这个方法的复杂度是什么,感觉会花不少时间 |
d******e 发帖数: 2265 | 8 基本功要加强。
【在 c**z 的大作中提到】 : 为撒超时啊,大牛来说说
|