字典和集合的一些实用操作
var primeNums:Set = [3,5,7,11,17]
let oddNums:Set = [1,3,5,7,9]
// 交集
let primeAndOddNum = primeNums.intersection(oddNums)
// 并集
let primeOrOddNum = primeNums.formUnion(oddNums)
// 差集
let oddNotPrimeNum = oddNums.subtracting(primeNums)
题:
给出一个整型数组和一个目标值,判断数组中是否有两个数之和等于目标值。
// 前面带class修饰,表示类方法
class func twoSum(nums:[Int], _ target:Int) ->Bool {
var set = Set<Int>()
for num in nums {
if set.contains(target - num) {
return true
}
set.insert(num)
}
return false
}
对题目稍微修改一下
给定一个整型数组中有且仅有两个数之和等于目标值,求这两个数在数组中的序号。
class func twoSumIndex(nums:[Int], _ target:Int) -> [Int] {
var dict = [Int:Int]()
for (i,sum) in nums.enumerated() {
if let lastIndex = dict[target - sum] {
return [lastIndex, i]
} else {
dict[sum] = i
}
}
fatalError("No valid output")
}