Скользящее окно переменного размера — сумма подмассива равна K ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Скользящее окно переменного размера — сумма подмассива равна K

Сообщение Anonymous »

Я пытался решить проблему с раздвижными окнами переменного размера, но мой тестовый пример не удался для
nums =[-1,-1,1], k =0 , Output=0, Expected =1
https ://leetcode.com/problems/subarray-sum-equals-k/description/
вот мое решение вышеуказанной проблемы. Я знаю, что доступно много разных решений, но я хочу решить мой подход. Может кто-нибудь улучшить мою логику ниже. Спасибо

Код: Выделить всё

private static int subarraySum(int[] nums, int k) {

int i = 0;
int j = 0;
int sum = 0;
int count = 0;

while (j < nums.length) {
// condition
sum = sum + nums[j];

if (sum < k) {
j++;
} else if (sum == k) {
count = count + 1;
sum = sum - nums[i];
i++;
j++;
} else if (sum > k) {
while (sum > k) {
sum = sum - nums[i];
if (sum > 0 && sum == k) {
count = count + 1;
}
i++;
}
j++;
}

}

return count;
}
Тестовый пример не пройден

Подробнее здесь: https://stackoverflow.com/questions/791 ... m-equals-k

Вернуться в «JAVA»