"Two Sum II - 입력 배열이 정렬됨" 문제는 배열 및 포인터 조작에 대한 이해를 테스트하는 고전적인 코딩 문제입니다. 또한 우아하면서도 효율적인 솔루션을 선보일 수 있는 좋은 기회이기도 합니다. 문제를 자세히 살펴보고 문제 해결을 위한 최적의 접근 방식을 분석해 보겠습니다.
LeetCode 문제 바로가기
내림차순으로 정렬된 1 인덱스 정수 배열이 주어지면, 목표는 그 합이 주어진 목표와 같아지는 두 숫자를 찾는 것입니다. 이 두 숫자의 인덱스를 배열 [index1, index2]로 반환해야 합니다. 여기서 1
입력: 숫자 = [2,7,11,15], 대상 = 9
출력: [1, 2]
입력: 숫자 = [2,3,4], 대상 = 6
출력: [1, 3]
입력: 숫자 = [-1,0], 대상 = -1
출력: [1, 2]
문제의 제약 조건(정렬된 배열과 단일 솔루션)으로 인해 이 문제는 2포인터 기술의 완벽한 후보가 됩니다. 이유는 다음과 같습니다.
다음은 두 포인터 접근 방식의 JavaScript 구현입니다.
/** * @param {number[]} nums * @param {number} target * @return {number[]} */ var twoSum = function(nums, target) { const length = nums.length; let rightPointer = length - 1; let leftPointer = 0; while (leftPointer target) { rightPointer--; } else { leftPointer++; } } };
두 포인터 초기화:
만날 때까지 반복:
색인 반환:
첫 번째 예를 살펴보겠습니다.
2포인터 방법은 입력 배열의 정렬된 특성을 활용하여 "Two Sum II - 입력 배열이 정렬됨" 문제를 우아하게 해결합니다. 이는 효율성을 보장할 뿐만 아니라 공간 제약을 준수하는 강력한 기술이므로 유사한 문제에 대한 접근 방식이 됩니다. 즐거운 코딩하세요!
위 내용은 두 합 II를 효율적으로 풀기 - 입력 배열이 정렬됨의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!