Последний индекс вставки в отсортированном массиве

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии мы будем изучать концепцию нахождения индекса последней вставки в отсортированном массиве. Мы узнаем, как проверить, отсортирован ли массив по убыванию, и как использовать Array.prototype.reverse() и Array.prototype.findIndex(), чтобы найти соответствующий последний индекс, куда должен быть вставлен элемент. В конце этого практического занятия у вас будет лучше понимание того, как поддерживать порядок сортировки массива.

Описание индекса последней вставки в отсортированном массиве

Чтобы найти наибольший индекс, куда значение должно быть вставлено в массив, чтобы сохранить его порядок сортировки, следуйте этим шагам:

  • Во - первых, нестрого проверьте, отсортирован ли массив по убыванию.
  • Затем используйте Array.prototype.reverse() и Array.prototype.findIndex(), чтобы найти соответствующий последний индекс, куда должен быть вставлен элемент.

Вот код функции:

const sortedLastIndex = (arr, n) => {
  const isDescending = arr[0] > arr[arr.length - 1];
  const index = arr
    .reverse()
    .findIndex((el) => (isDescending ? n <= el : n >= el));
  return index === -1 ? 0 : arr.length - index;
};

Вот пример использования функции:

sortedLastIndex([10, 20, 30, 30, 40], 30); // 4

Для начала практики программирования откройте Терминал/SSH и введите node.

Резюме

Поздравляем! Вы завершили практическое занятие по нахождению индекса последней вставки в отсортированном массиве. Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.