2016年11月20日 星期日

[LeetCode] 1. Two Sum

轉自LeetCode

Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution.
Example:
Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
<Solution>

這題不難,因為題目有說每個input只會有一個答案

所以對於每個數字 n,要找的配對就是 target - n

那這邊使用 unordered_map 來存 {value : index} 這個配對

是因為 unordered_map 是用 hash table 實做,所以它的存取速度很快,可以視作O(1)

解法概念如下
  • 算出要找的配對數字
  • 看看是否已經在 unordered_map 裡了。有就回傳答案,沒有就塞到 unordered_map
code如下

C++

Java
Kotlin

沒有留言:

張貼留言