package com.interview.binarysearch; /** * http://www.geeksforgeeks.org/check-for-majority-element-in-a-sorted-array/ */ public class FirstOccurrenceOfNumberInSortedArray { public int firstOccurrence(int input[], int x){ int low = 0; int high = input.length-1; while(low <= high){ int middle = (low + high)/2; if(input[middle] == x && (middle == 0 || input[middle-1] < x)){ return middle; }else if(input[middle] < x){ low = middle+1; }else{ high = middle-1; } } return -1; } public static void main(String args[]){ FirstOccurrenceOfNumberInSortedArray fos = new FirstOccurrenceOfNumberInSortedArray(); int input[] = {1,2,2,2,2,2,5,7,7}; System.out.println(fos.firstOccurrence(input, 6)); } }