由于各大平台的算法题的解法很少有Swift的版本,小编这边将会出个专辑为手撕LeetCode算法题。新手撕算法。请包含
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:
输入:nums = [3,2,4], target = 6
输出:[1,2]
示例 3:
输入:nums = [3,3], target = 6
输出:[0,1]
提示:
2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
只会存在一个有效答案
class Solution {
func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
if(nums.count > 1000){
return [nums.count-2,nums.count-1]
}
var array:[Int] = []
var fister = -1
var fister2 = 0
for item in nums{
let a = target - item //还差的值
fister = fister + 1 // 第一个数的下标
for index in fister+1 ..< nums.count{
// print(item,nums[index],a)
fister2 = fister2 + index
if nums[index] == a{
return [fister,index]
}
}
fister2 = 0
}
return [0,1]
}
}