Advertisement
sweet1cris

Untitled

Jan 9th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.00 KB | None | 0 0
  1. public class Solution {
  2.     /**
  3.      * @param numbers: Give an array numbers of n integer
  4.      * @param target : An integer
  5.      * @return : return the sum of the three integers, the sum closest target.
  6.      */
  7.     public int threeSumClosest(int[] numbers, int target) {
  8.         if (numbers == null || numbers.length < 3) {
  9.             return -1;
  10.         }
  11.        
  12.         Arrays.sort(numbers);
  13.         int bestSum = numbers[0] + numbers[1] + numbers[2];
  14.         for (int i = 0; i < numbers.length; i++) {
  15.             int start = i + 1, end = numbers.length - 1;
  16.             while (start < end) {
  17.                 int sum = numbers[i] + numbers[start] + numbers[end];
  18.                 if (Math.abs(target - sum) < Math.abs(target - bestSum)) {
  19.                     bestSum = sum;
  20.                 }
  21.                 if (sum < target) {
  22.                     start++;
  23.                 } else {
  24.                     end--;
  25.                 }
  26.             }
  27.         }
  28.        
  29.         return bestSum;
  30.     }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement