Упражнения на Java: поиск индекса значения в отсортированном массиве.
Java Basic: упражнение-124 с решением
Напишите программу на Java, чтобы найти индекс значения в отсортированном массиве. Если значение не найдено, верните индекс, где он был бы, если бы он был вставлен в порядке. Пример:
[1, 2, 4, 5, 6] 5 (цель) -> 3 (индекс)
[1, 2, 4, 5, 6] 0 (цель) -> 0 (индекс)
[1, 2, 4, 5, 6] 7 (цель) -> 5 (индекс)
Иллюстрированная презентация:
Пример решения:
Java-код:
import java.util.*;
public class Main {
public static void main(String[] args) {
int[] nums = {1,2,4,5,6};
int target;
target = 5;
// target = 0;
// target = 7;
System.out.print(searchInsert(nums, target));
}
public static int searchInsert(int[] nums1, int target) {
if (nums1 == null || nums1.length == 0) {
return 0;
}
int start = 0;
int end = nums1.length - 1;
int mid = start + (end - start)/2;
while (start + 1 < end) {
mid = start + (end - start)/2;
if (nums1[mid] == target) {
return mid;
} else if (nums1[mid] > target) {
end = mid;
} else {
start = mid;
}
}
if (nums1[start] >= target) {
return start;
} else if (nums1[start] < target && target <= nums1[end]) {
return end;
} else {
return end + 1;
}
}
}
Пример вывода:
3
Блок - схема:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Java, чтобы найти подмассив с наименьшей суммой из заданного массива целых чисел.
Далее: Напишите программу на Java, чтобы получить предварительный обход значений ее узлов заданного двоичного дерева.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования