iOS面试之道-字典和集合

字典和集合的一些实用操作

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()
        
        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")
   }

你可能感兴趣的:(iOS面试之道-字典和集合)