实现自己的集合算法

2021-08-15  本文已影响0人  一个栗

思路 1 - 位

func getSubsetsOfSet<T>(set: Set<T>) -> Array<Set<T>> {
    let count = 1 << set.count
    let elements = Array(set)
    var subSets = Array<Set<T>>()
    for i in 0..<count {
        var subSet = Set<T>()
        for j in 0...elements.count {
            if ((i >> j) & 1) == 1 {
                subSet.insert(elements[j])
            }
        }
        subSets.append(subSet)
    }
    return subSets
}

思路 2 - 递归

思路 2 - 递归
上一篇 下一篇

猜你喜欢

热点阅读