목표에 근접한 삼중 항 합계
5891 단어 javascriptleetcode
예 1:
입력: a[] = [-2, -4, 6, 3, 7], 대상 = 2
출력: 1
설명: 목표에 가장 근접한 합을 갖는 삼중항은 [-2, -4, 7]이고 삼중항의 합 = 1
예 2:
입력: a[] = [10, 2, 30, 49, 8], 대상 = 50
출력: 48
설명: 목표에 가장 가까운 합을 갖는 삼중항은 [10, 30, 8], 삼중항의 합 = 48
const threeSum = (arr, x) => {
let nums = [...arr].sort();
let smallestDiff = Number.MAX_VALUE;
for (let i = 0; i < nums.length - 2; i++) {
if (i > 0 && nums[i] === nums[i - 1]) {
continue;
}
let j = i + 1;
let k = nums.length - 1;
while (k > j) {
let sum = nums[i] + nums[j] + nums[k];
let currentDiff = x - sum;
if (currentDiff == 0) {
return sum;
}
if (Math.abs(currentDiff) < Math.abs(smallestDiff)) {
smallestDiff = currentDiff;
}
if (currentDiff > 0) {
j++;
} else {
k--;
}
}
}
console.log(x - smallestDiff);
return x - smallestDiff;
};
threeSum([10, 2, 30, 49, 8], 50);
threeSum([1, 0, 1, 1], 100);
Reference
이 문제에 관하여(목표에 근접한 삼중 항 합계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/zeeshanali0704/triplet-sum-close-to-target-22kg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)