>  기사  >  웹 프론트엔드  >  투섬 || DSA || 자바스크립트 || 무니세카르 우다발라파티(Munisekhar Udavalapati)

투섬 || DSA || 자바스크립트 || 무니세카르 우다발라파티(Munisekhar Udavalapati)

Linda Hamilton
Linda Hamilton원래의
2024-11-02 15:59:301011검색

Two Sum || DSA || JavaScript || By Munisekhar Udavalapati

정수 배열 nums와 정수 target이 주어지면 두 숫자의 합이 target에 해당하는 인덱스를 반환합니다.
각 입력에는 정확히 하나의 솔루션이 있다고 가정할 수 있으며 동일한 요소를 두 번 사용할 수 없습니다.
어떤 순서로든 답변을 반환하실 수 있습니다.

Example 1:
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
Example 2:
Input: nums = [3,2,4], target = 6
Output: [1,2]
Example 3:
Input: nums = [3,3], target = 6
Output: [0,1]
Constraints:
2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
Only one valid answer exists.

오(n²)

var twoSum = function(nums, target) {
    for(let i=0;i<nums.length;i++){
        for(let j=i+1;j<nums.length;j++){
            if(nums[i]+nums[j]==target){
                return [i,j]
            }
        }
    }
};

추가 작업: O(n2) 시간 복잡도보다 작은 알고리즘을 생각해낼 수 있나요?

에)

var twoSum = function(nums, target) {
    let map=new Map();
    for(let i=0;i<nums.length;i++){
        let v1=nums[i];
        let v2=target-v1;
        if(map.has(v2)){
            return [i,map.get(v2)]
        }
        map.set(v1,i)
    }
};

위 내용은 투섬 || DSA || 자바스크립트 || 무니세카르 우다발라파티(Munisekhar Udavalapati)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.