LeetCode——16. 3Sum Closest

来源:互联网 发布:网游年龄数据库 编辑:程序博客网 时间:2024/06/05 23:56

beats 85%

和上一题3Sum一样的思想,但是扫描到一个三元组检查一下是不是最优的,复杂度n平方,很重要的一点是监测到sum==target的时候直接return,这样从beats 22%一下子提高到85%

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


0 0
原创粉丝点击