leetcode第十六題

給定一個數組和一個目標數,選出來數組中三個元素相加最接近目標數的的元素,並返回三個元素的和。

public static int threeSumClosest(int[] nums, int target) {
		Arrays.sort(nums);
		int result = nums[0]+nums[1]+nums[nums.length-1];
		for (int i = 0; i < nums.length-2; i++) {
			for (int j = i + 1, k = nums.length - 1; j < k;) {
				int sum = nums[i] + nums[j] + nums[k];
				if(sum>target){
					k--;
				}else{
					j++;
				}
				if (Math.abs(sum - target) < Math.abs(result - target)) {
                    result = sum;
                }
			}
		}
		return result;
	}
歡迎加入java交流羣691761026
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章