数组

作者: 周二可 | 来源:发表于2018-04-08 11:30 被阅读2次

    [ 1,8,2,7,3,6,4,5]写一个算法,把数组中的满足a+b=9的所有组合输出来,并记录有多少个组合

    // 思路是固定一个数A,看SUM-A是否在这个数组之中。
    // 另外用到了swift中查询、设置字典的复杂度为O(1)。
    func combine() {
        let array = [1, 8, 2, 7, 3, 6, 4, 5]
        
        // 定义一个字典
        var dict = [Int : Int]()
        var count = 0
        
        // 遍历这个数组
        for (i, num) in array.enumerated() {
            
            // 如果字典中有目标值减去当前值,这说明之前的遍历中一定有一个数与当前值之和等于目标值
            if dict[9 - num] != nil {
                print("\(num),\(9 - num)")
                count += 1
            }
            
            // 以当前数为key,当前索引为值存入字典
            dict[num] = i
        }
        print(count)
    }
    
    combine()
    
    

    相关文章

      网友评论

        本文标题:数组

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