Задача: 560. Subarray Sum Equals K
Дан массив целых чисел nums и целое число k, вернуть общее количество подмассивов, сумма которых равна k.
Подмассив - это непрерывная непустая последовательность элементов внутри массива.
Пример:
Input: nums = [1,1,1], k = 2
Output: 2
👨💻 Алгоритм:
1⃣Самый простой метод - рассмотреть каждый возможный подмассив данного массива nums.
2⃣Найти сумму элементов каждого из этих подмассивов и проверить равенство полученной суммы с заданным k.
3⃣Всякий раз, когда сумма равна k, увеличить счетчик, используемый для хранения необходимого результата.
😎 Решение:
public class Solution {
public int subarraySum(int[] nums, int k) {
int count = 0;
for (int start = 0; start < nums.length; start++) {
for (int end = start + 1; end <= nums.length; end++) {
int sum = 0;
for (int i = start; i < end; i++) {
sum += nums[i];
}
if (sum == k) {
count++;
}
}
}
return count;
}
}👉Новости 👉База вопросов