Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.62 KB | None | 0 0
  1. static long triplets(long t, int[] arr) {
  2.         int n = arr.length;
  3.         // Sort input array currently i am using array sort directly
  4.         Arrays.sort(arr);
  5.  
  6.         // Initialize result
  7.         long ans = 0;
  8.  
  9.         // Every iteration of loop counts triplet with
  10.         // first element as arr[i].
  11.         for (int i = 0; i < n - 2; i++) {
  12.             int j = i + 1, k = n - 1;
  13.  
  14.             // Use Meet in the Middle concept
  15.             while (j < k) {
  16.                 if (arr[i] + arr[j] + arr[k] > t)
  17.                     k--;
  18.  
  19.                 // Else move left corner
  20.                 else {
  21.                     System.out.println("Subtracted value: "+k+"//"+j+">>"+(k-j));
  22.                     ans += (k - j);
  23.                     j++;
  24.                 }
  25.             }
  26.         }
  27.         return ans;
  28.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement