TGViewer
Node.js Backend | YeaHub Node.js Backend | YeaHub @yeahub_node_backend · 464 subscribers
Post #68 153
#ЛитКод
Задача: 634. Find the Derangement of An Array

В комбинаторной математике отклонение - это перестановка элементов множества таким образом, что ни один элемент не оказывается на прежнем месте. Вам дано целое число n. Изначально имеется массив, состоящий из n целых чисел от 1 до n в порядке возрастания, верните количество отклонений, которые он может породить. Поскольку ответ может быть огромным, верните его по модулю 109 + 7.

Пример:
Input: n = 3
Output: 2


👨‍💻 Алгоритм:

1⃣Инициализация массива для хранения результатов
Создайте массив dp для хранения количества отклонений для каждого значения от 0 до n. Установите начальные значения: dp[0] = 1 и dp[1] = 0.

2⃣Вычисление количества отклонений
Используйте динамическое программирование для вычисления количества отклонений для каждого значения от 2 до n. Формула для вычисления: dp[i] = (i - 1) * (dp[i - 1] + dp[i - 2]) % MOD.

3⃣Возвращение результата
Верните значение dp[n], которое будет количеством отклонений для n элементов, по модулю 10^9 + 7.

😎 Решение:
var countDerangements = function(n) {
const MOD = 1e9 + 7;
if (n === 0) return 1;
if (n === 1) return 0;
let dp = Array(n + 1).fill(0);
dp[0] = 1;
dp[1] = 0;
for (let i = 2; i <= n; i++) {
dp[i] = (i - 1) * (dp[i - 1] + dp[i - 2]) % MOD;
}
return dp[n];
};


👉Новости 👉Платформа
  • ❤ 1
More from @yeahub_node_backend
  1. Oct 15, 2026#Собес #jwt #claim #signature 🤔 Как работает авторизация на основе JWT-токенов? 💬 Кратко…
  2. Oct 14, 2026#Собес #falsy #value 🤔 Чем отличается проверка на falsy-значение от строгого сравнения? �…
  3. Oct 12, 2026#Собес #Observable #subscribe #RxJS 🤔 Как подписаться на Observable и получить данные из…
  4. Oct 9, 2026#book #начинающие 📚 Node.js: разработка приложений в микросервисной архитектуре с нуля Ос…
  5. Oct 8, 2026#Собес #volume #bind #mount 🤔 Как считать данные, записанные контейнером? 💬 Кратко: Данн…
  6. Oct 7, 2026#Собес #event_loop #main_thread #blocking 🤔 Заблокирует ли бесконечный цикл взаимодействи…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →