Thursday, July 28, 2016

maximize share sell code fixed

public static void findMaxProfit(int [] arr){
      int min = arr[0];
      int max = 0;
      int maxDif = arr[1] - arr[0] ;
   
      int[] res = new int[arr.length];
      for(int i = 0; i < res.length ; i++)
            res[i] = Integer.MIN_VALUE;
      int j = -1;
      res[++j] = min;
   
      for(int i = 1; i < arr.length; i++){
          if(arr[i] > min){
             if(arr[i] - min > maxDif){
                     maxDif  = arr[i] - min;
                     max = arr[i];
                     if( j % 2 == 1 ){
                        if(res[j] < max)
                            res[j] = max;
                     }else
                        res[++j] = max;
             }
          } else{
                     min = arr[i];
                      if( j % 2 == 0 ){
                          if(res[j] > min)
                            res[j] = min;
                      } else res[++j] = min;
          }
      }
   
     // for(int x : res)
     //   System.out.print(x+",");
       int max_value = Integer.MIN_VALUE;
       int result = -1;
      for(int i = 0; i < res.length;){
         if(res[i] == Integer.MIN_VALUE || res[i+1] == Integer.MIN_VALUE )
            break;
         int dif = res[i+1] - res[i];
             if(dif > max_value){
                max_value = dif;
                result = i;
             }
          i = i+2;
      }
      System.out.println("\n"+res[result] + " : "+ res[result+1]);
    }

No comments:

Post a Comment