Files
cpp-flashcards/org/study_deck_02/dsa/arrays-hashing/0001-two-sum.org
T

77 lines
1.5 KiB
Org Mode
Raw Normal View History

2026-06-01 18:12:40 +08:00
#+ANKI_DECK: study_deck_02
* TODO 0001. Two Sum :easy:
:PROPERTIES:
:NEETCODE: [[file:../../roadmap.org::*0001. Two Sum][0001. Two Sum]]
:END:
Given an array of integers ~nums~ and an integer ~target~, return /indices of the two numbers such that they add up to ~target~/.
You may assume that each input would have */exactly/ one solution*, and you may not use the /same/ element twice.
You can return the answer in any order.
*Example 1:*
#+begin_src
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
#+end_src
*Example 2:*
#+begin_src
Input: nums = [3,2,4], target = 6
Output: [1,2]
#+end_src
*Example 3:*
#+begin_src
Input: nums = [3,3], target = 6
Output: [0,1]
#+end_src
*Constraints:*
- ~2 <= nums.length <= 10^{4}~
- ~-10^{9} <= nums[i] <= 10^{9}~
- ~-10^{9} <= target <= 10^{9}~
- *Only one valid answer exists.*
*Follow-up: *Can you come up with an algorithm that is less than ~O(n^{2})~ time complexity?
** TODO Approach
Write your approach here.
** TODO Python
2026-06-05 22:32:49 +08:00
#+begin_src python :lc-problem 1 :lc-lang python3
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
2026-06-05 22:18:39 +08:00
sb = {}
for xi, x in enumerate(nums):
want = target - x;
if want in sb:
return sb[want], xi
sb[x] = xi
#+end_src
** TODO C++
2026-06-05 22:32:49 +08:00
#+begin_src cpp :lc-problem 1
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
}
};
#+end_src