[LeetCode]두수의 합

Inhwan98·2023년 1월 17일
0

PTU STUDY_leetcode

목록 보기
7/24

문제

덧셈하여 타겟을 만들 수 있는 배열의 두 인덱스를 리턴하라

  • 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]

코드

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {

    vector<int> ans;
    unordered_map <int, int> m;

    for (int i = 0; i < nums.size(); i++) {
        if (m.find(target - nums[i]) != m.end()) {
            ans.push_back(m[target - nums[i]]);
            ans.push_back(i);
            return ans;
        }
        m[nums[i]] = i;
    }
    return {};
    }
};

풀이

  • 첫번째 인덱스부터 마지막 인덱스까지 target과 비교하며 비례되는 값을 찾아 이 값의 인덱스와 현재의 인덱스를 넣어주는 풀이이다.
  • 인덱스의 정보가 담긴 값이 필요하기 때문에 map함수를 써주었고, 정렬된 정보는 필요 없으니 unordered를 사용해서 속도를 향상시킨다.

결과

Runtime 3 ms / Memory 10.9 MB
https://leetcode.com/problems/two-sum/submissions/880012572/


https://leetcode.com/problems/two-sum/

profile
코딩마스터

0개의 댓글