/
githubmirror
/
interviews
Обзор
Документация
Войти
/
githubmirror
/
interviews
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
cracking-the-coding-interview/chapter-nine-recursion-and-dynamic-programming/MagicIndex.java
24 строки
695 B
Kevin Naughton Jr
finish renaming files and directories
27 мар 2018, 19:52
27 мар 2018, 19:52
ec6dfb5
Код
Авторство
О чём код?
/* a magic index is an array A[1...n - 1] is defined to be an index such that A[i] = i. Given a sorted * array of distinct integers, write a method to find a magic index, if one exists, in array A */ public class MagicIndex { public static int magicFast(int[] array, int start, int end) { if(end < start || start < 0 || end >= array.length) { return -1; } int mid = (start + end) / 2; if(array[mid] == mid) { return mid; } else if(array[mid] > mid) { return magicFast(array, start, mid - 1); } else { return magicFast(array, mid + 1, end); } } public static int magicFast(int[] array) { return magicFast(array, 0, array.length - 1); } }