J
JavaScript | LeetCode
@easy_frontend_task9.0K подп.
566просмотров
6.3%от подписчиков
14 марта 2026 г.
statsScore: 623
Задача: 1013. Partition Array Into Three Parts With Equal Sum Сложность: easy Если задан массив целых чисел arr, верните true, если мы можем разбить массив на три непустые части с равными суммами. Формально, мы можем разбить массив, если можем найти индексы i + 1 < j с (arr[0] + arr[1] + ... + arr[i] == arr[i + 1] + arr[i + 2] + ... + arr[j - 1] == arr[j] + arr[j + 1] + ... + arr[arr.length - 1]) Пример: Input: arr = [0,2,1,-6,6,-7,9,1,2,0,1] Output: true 👨‍💻 Алгоритм: 1⃣Вычисление общей суммы: Вычислите общую сумму всех элементов массива. Если эта сумма не делится на 3 без остатка, вернуть false, так как невозможно разбить массив на три части с равной суммой. 2⃣Поиск первой и второй части: Итерируйте по массиву и ищите первую часть с суммой, равной одной трети от общей суммы. Продолжайте итерацию для поиска второй части с такой же суммой. Убедитесь, что между первой и второй частью есть хотя бы один элемент. 3⃣Проверка третьей части: Убедитесь, что оставшаяся часть массива также имеет ту же сумму, что и две найденные части. Если да, вернуть true, иначе false. 😎 Решение: class Solution { canThreePartsEqualSum(arr) { const totalSum = arr.reduce((sum, num) => sum + num, 0); if (totalSum % 3 !== 0) { return false; } const target = totalSum / 3; let partSum = 0, count = 0; for (let i = 0; i < arr.length; i++) { partSum += arr[i]; if (partSum === target) { count++; partSum = 0; if (count === 2 && i < arr.length - 1) { return true; } } } return false; } } Ставь 👍 и забирай 📚 Базу знаний
566
просмотров
1744
символов
Да
эмодзи
Нет
медиа

Другие посты @easy_frontend_task

Все посты канала →