★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-uvlcbfia-md.html
➤若是连接不是山青咏芝的博客园地址,则多是爬取做者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持做者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html
Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number.git
The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2.github
Note:数组
Example:微信
Input: numbers = [2,7,11,15], target = 9 Output: [1,2] Explanation: The sum of 2 and 7 is 9. Therefore index1 = 1, index2 = 2.
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。less
函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。函数
说明:spa
示例:code
输入: numbers = [2, 7, 11, 15], target = 9 输出: [1,2] 解释: 2 与 7 之和等于目标数 9 。所以 index1 = 1, index2 = 2 。
1 class Solution { 2 func twoSum(_ numbers: [Int], _ target: Int) -> [Int] { 3 var leftIndex:Int = 0 4 var rightIndex:Int = numbers.count - 1 5 while (leftIndex < rightIndex) 6 { 7 var sum = numbers[leftIndex] + numbers[rightIndex] 8 if sum == target 9 { 10 return [leftIndex + 1,rightIndex + 1] 11 } 12 else if sum < target 13 { 14 leftIndex += 1 15 } 16 else 17 { 18 rightIndex -= 1 19 } 20 } 21 return [] 22 } 23 }
16mshtm
1 class Solution { 2 func twoSum(_ numbers: [Int], _ target: Int) -> [Int] { 3 guard numbers.count >= 2 else { 4 return [] 5 } 6 var dic: [Int:Int] = [:] 7 for i in 0..<numbers.count { 8 let t = target - numbers[i] 9 if dic.keys.contains(t) { 10 return [dic[t]!+1, i+1] 11 } 12 dic[numbers[i]] = i 13 } 14 return [] 15 } 16 }
24ms
1 class Solution { 2 func twoSum(_ numbers: [Int], _ target: Int) -> [Int] { 3 var numIndexDict = [Int : Int]() 4 for (index, num) in numbers.enumerated() { 5 numIndexDict[num] = index 6 } 7 8 for (index, num) in numbers.enumerated() { 9 if let diffIndex = numIndexDict[target - num] { 10 return [index + 1, diffIndex + 1] 11 } 12 } 13 14 return [Int]() 15 } 16 }