LeetCode(16. 最接近的三数之和)

如题LeetCode(16. 最接近的三数之和)_第1张图片
先直接暴力安排,三轮循环冲冲冲

public static int threeSumClosest(int[] nums, int target) {
		int min=Integer.MAX_VALUE;
		int minsum=0;
		for(int i=0;i

不出意外
LeetCode(16. 最接近的三数之和)_第2张图片
对于多重循环匹配,很直接的做法就是双指针了

public static int threeSumClosest1(int[] nums, int target) {
		Arrays.sort(nums);
		int L;int R;
		int minNum = Integer.MAX_VALUE;//最小差值
		int res = Integer.MAX_VALUE;//最小差值时的和
		for(int i = 0; i 0){//和过大
					R--;
				}else{//和过小
					L++;
				}
				if(Math.abs(temp) < minNum){//检索到更小的差值
					res = temp1;
					minNum = Math.abs(temp);
				}
			}
		}
		return res;
	}

LeetCode(16. 最接近的三数之和)_第3张图片

你可能感兴趣的:(leetcode刷题java)