가장 작은 연속 하위 배열 합계는 K와 같음
5430 단어 javascriptleetcode
양수 배열과 양수 'S'가 주어지면 합이 'S'보다 크거나 같은 가장 작은 연속 하위 배열의 길이를 찾습니다. 해당 하위 배열이 없으면 0을 반환합니다.
예 1:
입력: [2, 1, 5, 2, 3, 2], S=7
출력: 2
설명: 합이 '7'보다 크거나 같은 가장 작은 하위 배열은 [5, 2]입니다.
하위 배열 합계는 K와 같음 - 무차별 대입 방식:
var subarraySum = function (nums, k) {
let n = nums.length;
let count = 0;
for (let i = 0; i < n; i++) {
let sum = 0;
for (let j = i; j < n; j++) {
// Calculate required sum
sum += nums[j];
// Check if sum is equal to
// required sum
if (sum == k) count++;
}
}
return count;
};
2) 지도/HasMap 사용:
위의 논리는 접두사 합계 배열 또는 누적 합계 배열의 원리에서 작동합니다.
SUM - K가 hasMap에 존재하는 경우 이전 항목의 일부 조합이 sum = k를 제공할 수 있음을 의미합니다.
방정식은 다음과 같습니다.
currSum - k = Val(이 val 값은 이전 조합에서 파생될 수 있는 값임)
var subarraySum = function (nums, k) {
const obj = {};
let res = 0;
let sum = 0;
for (let i = 0; i < nums.length; i++) {
sum += nums[i];
if (sum == k) res++;
if (obj[sum - k]) res += obj[sum - k];
obj[sum] ? (obj[sum] += 1) : (obj[sum] = 1);
}
return res;
};
Reference
이 문제에 관하여(가장 작은 연속 하위 배열 합계는 K와 같음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/zeeshanali0704/subarray-sum-equals-k-2i4g텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)