3 Sum Closest

跟 3 Sum 几乎一样,当时好像故意留着不做的。
今天是2014年12月30日,终于把leetcode里面所有medium和hard(不含上锁的几道题)全部刷了一遍!总共130道整。其间感恩节那一个星期生啃了20多道题,然后似乎就慢慢找到感觉了,最高纪录一天刷了10题。
万里长征走了第一步,不管怎样,这第一步还是硬生生走出去了,因为兑现了自己50天搞定leetcode的诺言,2014 无憾!

public class Solution {
public int threeSumClosest(int[] num, int target) {
Arrays.sort(num);
int result = 0, sum = 0, gap = Integer.MAX_VALUE;
for(int i = 0; i < num.length - 2; i++) {
int start = i + 1;
int end = num.length - 1;
while(start < end) {
sum = num[i] + num[start] + num[end];
if(sum == target) {
return target;
} else if(sum < target) {
if(target - sum < gap) {
gap = target - sum;
result = sum;
}
start++;
} else {
if(sum - target < gap) {
gap = sum - target;
result = sum;
}
end--;
}
}
}
return result;
}
}


posted @ 2014-12-31 12:32  江南第一少  阅读(118)  评论(0)    收藏  举报