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