package com.fishercoder.solutions;

/**
 * 1287. Element Appearing More Than 25% In Sorted Array
 *
 * Given an integer array sorted in non-decreasing order, there is exactly one integer in the array that occurs more than 25% of the time.
 * Return that integer.
 *
 * Example 1:
 * Input: arr = [1,2,2,6,6,6,6,7,10]
 * Output: 6
 *
 * Constraints:
 *
 * 1 <= arr.length <= 10^4
 * 0 <= arr[i] <= 10^5
 * */
public class _1287 {
    public static class Solution1 {
        public int findSpecialInteger(int[] arr) {
            for (int i = 0; i < arr.length - 1; ) {
                int count = 1;
                if (arr[i] == arr[i + 1]) {
                    do {
                        i++;
                        count++;
                        if (count > arr.length / 4) {
                            return arr[i];
                        }
                    } while (i < arr.length - 1 && arr[i] == arr[i + 1]);
                } else {
                    i++;
                }
            }
            return arr[0];
        }
    }
}

@@ -525,27 +525,21 @@
     
-for (int i = 0; i %3C
+int quarter =
  arr
@@ -550,16 +550,12 @@
 gth 
-- 1; ) %7B
+/ 4;
 %0A   
@@ -567,377 +567,104 @@
     
-    int count = 1;%0A                if (arr%5Bi%5D == arr%5Bi + 1%5D) %7B%0A                    do %7B%0A                        i++;%0A                        count++;%0A                        if (count %3E arr.length / 4) %7B%0A                            return arr%5Bi%5D;%0A                        %7D%0A                    %7D while (i %3C arr.length - 1 && arr%5Bi%5D == arr%5Bi + 1%5D);%0A                %7D else
+for (int i = 0; i %3C arr.length - quarter; i++) %7B%0A                if (arr%5Bi%5D == arr%5Bi + quarter%5D)
  %7B%0A 
@@ -682,19 +682,29 @@
         
-i++
+return arr%5Bi%5D
 ;%0A      
@@ -752,14 +752,10 @@
 urn 
-arr%5B0%5D
+-1
 ;%0A  

refactor 1287