Verilmiş olan S sayı dizisi ve N sayısı için, dizideki herhangi üç sayının N sayısına en yakın olan toplamı bulan algoritma.
public int threeSumClosest(int[] nums, int target) { int min = Integer.MAX_VALUE; int result = 0; Arrays.sort(nums); for (int i = 0; i < nums.length; i++) { int j = i + 1; int k = nums.length - 1; while (j < k) { int sum = nums[i] + nums[j] + nums[k]; int diff = Math.abs(sum - target); if(diff == 0) return sum; if (diff < min) { min = diff; result = sum; } if (sum <= target) { j++; } else { k--; } } } return result; }
Algoritma Karmaşıklılığı O(n^2).
Kaynak : https://www.programcreek.com/2013/02/leetcode-3sum-closest-java/