/**
@param {number[]} nums
@param {number} k
@return {boolean}
*/
const checkSubarraySum = (nums, k) => {
const map = { 0: -1};
let sum = 0;
for (let i = 0; i < nums.length; i++) {
sum += nums[i];
if (k != 0)
sum %= k;
if (map[sum] >= -1) {
if (i - map[sum] > 1)
return true;
} else
map[sum] = i;
}
return false;
};
// Time Complexity O(n)
// Space Complexity O(n)
console.log(checkSubarraySum([23, 2, 4, 6, 7], 6));
// Output: true
/**
@param {number[]} nums
@param {number} k
@return {boolean}
*/
const checkSubarraySumBruteForce = (nums, k) => {
for (var start = 0; start < nums.length - 1; start++) {
var sum = nums[start];
for (var end = start + 1; end < nums.length; end++) {
sum += nums[end];
if (sum === k || (k !== 0 && sum % k === 0))
return true;
}
}
return false;
};
// Time Complexity O(n2)
// Space Complexity O(1)
console.log(checkSubarraySumBruteForce([23, 2, 4, 6, 7], 6));
// Output: true Categories