美文网首页
iOS面试之道-字典和集合

iOS面试之道-字典和集合

作者: 认不出我来 | 来源:发表于2019-05-13 16:50 被阅读0次

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

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

    相关文章

      网友评论

          本文标题:iOS面试之道-字典和集合

          本文链接:https://www.haomeiwen.com/subject/eqjraqtx.html