Permalink
Cannot retrieve contributors at this time
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
57 lines (46 sloc)
1.78 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// TwoSumII.swift | |
// LeetCode.swift | |
// | |
// Created by 叶帆 on 2020/3/8. | |
// Copyright © 2020 Suzhou Coryphaei Information&Technology Co., Ltd. All rights reserved. | |
// | |
/** | |
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. | |
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. | |
Note: | |
Your returned answers (both index1 and index2) are not zero-based. | |
You may assume that each input would have exactly one solution and you may not use the same element twice. | |
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. | |
===== | |
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 | |
函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 | |
说明: | |
返回的下标值(index1 和 index2)不是从零开始的。 | |
你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 | |
示例: | |
输入: numbers = [2, 7, 11, 15], target = 9 | |
输出: [1,2] | |
解释: 2 与 7 之和等于目标数 9 。因此 index1 = 1, index2 = 2 。 | |
*/ | |
import Foundation | |
class Solution { | |
func twoSum(_ numbers: [Int], _ target: Int) -> [Int] { | |
var left = 0 | |
var right = numbers.count | |
while left < right { | |
let sum = numbers[left] + numbers[right] | |
if sum == target { | |
return [left + 1, right + 1] | |
} else if sum < target { | |
left += 1 | |
} else if sum > target { | |
right -= 1 | |
} | |
} | |
return [] | |
} | |
} |