Advertisement
DPELED

2013b_92que1

Feb 22nd, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.90 KB | None | 0 0
  1. public static int longestFlat(int[] arr)
  2.     {
  3.         return longestFlat(arr, 0);
  4.     }
  5.  
  6.     private static int longestFlat(int[] a, int i)
  7.     {
  8.         if(i == a.length)
  9.             return 0;
  10.         int thisFlat = flatLength(a, i, a[i], false, 0);
  11.         int nextFlat = longestFlat(a, i + 1);
  12.         return Math.max(thisFlat, nextFlat);
  13.     }
  14.  
  15.     private static int flatLength(int[] a, int i, int start, boolean hasNextValue, int nextValue)
  16.     {
  17.         if(i == a.length)
  18.             return 0;
  19.         if(a[i] != start)
  20.             if(hasNextValue){
  21.                 if(a[i] != nextValue)
  22.                     return 0;
  23.             }
  24.             else{
  25.                 if(Math.abs(start - a[i]) != 1)
  26.                     return 0;
  27.                 return 1 + flatLength(a, i + 1, start, true, a[i]);
  28.             }
  29.         return 1 + flatLength(a, i + 1, start, hasNextValue, nextValue);
  30.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement