public static char NextGreatestLetter(char[] letters, char target) {
int len = letters.Length;
Console.WriteLine("Starting Index:" + index);
Console.WriteLine("Starting Loop Index:" + index);
state = letters[index].CompareTo(target);
Console.WriteLine("State:" + state);
Console.WriteLine("Current Letter Is:" + letters[index]);
if( state < 0 || state == 0){
newIndex = ((letters.Length - index )/ 2) -1;
Console.WriteLine("New Index:" + newIndex);
}else if (newIndex == 0){
index = letters.Length - 1 ;
if( letters[index].CompareTo(target) <= 0 ) {
Console.WriteLine("Setting Greatest INDEX : " + index);
newIndex = (( index )/ 2) -1 ;
Console.WriteLine("New Index:" + newIndex);
if(newIndex == 0 || newIndex < 0 ){
if( letters[index].CompareTo(target) > 0 ) {
index = index - newIndex;
Console.WriteLine("Last INDEX : " + index);
if(index == -1 && greaterIndex == -1){
Console.WriteLine(" Index: -1");
Console.WriteLine("GREATER INDEX : " + greaterIndex);
}else if(index !=greaterIndex && greaterIndex != -1){
Console.WriteLine("FINISHED ");
public static void Main()
Console.WriteLine("Hello World");
char[] letters = new char[] {'c', 'f', 'j'};
char answer = NextGreatestLetter(letters, target);
Console.WriteLine("The Answer Is:");
Console.WriteLine(answer);