Advertisement
ffpaladin

Three Sum Zero + Max Seq Sum

Oct 16th, 2015
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.58 KB | None | 0 0
  1.  
  2. public class ThreeSumZero {
  3.     public static void main (String args[]){
  4.         int array[] = {2, -9, 3, 1, 0, 9, -1, -3, -2, -5};
  5.        
  6.         // bruteGroup(array);
  7.  
  8.         largestGroup(array);
  9.         smarterGroup(array);
  10.        
  11.  
  12.     }
  13.    
  14.     private static void largestGroup(int[] array) {
  15.        
  16.         int imax = 0, jmax = 0, max = 0;
  17.        
  18.         for (int i = 0; i < array.length-1; i++)
  19.             for (int j = i; j < array.length; j++) {
  20.                 int sum = 0;
  21.                 for(int k=i; k<j; k++)
  22.                     sum += array[k];
  23.                 if (sum > max) {
  24.                     max = sum;
  25.                     jmax = j;
  26.                     imax = i;
  27.                 }
  28.             }
  29.        
  30.         for(int k=imax; k<jmax; k++)
  31.             System.out.println(array[k]);
  32.        
  33.     }
  34.  
  35.     private static void smarterGroup(int[] array) {
  36.  
  37.         sort(array);
  38.        
  39.  
  40.         for (int i=0 ; i < array.length; i++) {
  41.            
  42.             for (int j=i+1, k=array.length-1; j < k;)
  43.             {
  44.                 if (array[i]+array[j]+array[k] == 0) {
  45.                     System.out.println(array[i]+ " " +array[j]+ " " +array[k]);
  46.                     j++;
  47.                 }
  48.                 else if (array[i]+array[j]+array[k] > 0)
  49.                     k--;
  50.                 else
  51.                     j++;
  52.             }
  53.         }
  54.            
  55.        
  56.     }
  57.  
  58.     private static void sort(int[] array) {
  59.        
  60.         for (int i=0; i<array.length; i++)
  61.             for (int j=0; j<array.length-1; j++) {
  62.                 if (array[j]>array[j+1]){
  63.                     int temp = array[j];
  64.                     array[j] = array[j+1];
  65.                     array[j+1] = temp;
  66.                 }
  67.             }      
  68.     }
  69.  
  70.     public static void bruteGroup (int array[]) {
  71.        
  72.         for (int i = 0; i < array.length; i++)
  73.             for (int j = i; j < array.length; j++ )
  74.                 for (int k = j; k < array.length; k++)
  75.                     if (array[i] + array[j] + array[k] == 0)
  76.                         System.out.println(array[i] + " " + array[j] + " " + array[k]);
  77.     }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement