美文网首页
Swift 数组平分

Swift 数组平分

作者: David_Do | 来源:发表于2020-11-04 19:05 被阅读0次

    将一个数组平分为对应的子数组

    需求:
    将一个数组

        let list = [1, 2, 3, 4, 5, 6, 7 , 8 ,9, 10, 11]
    

    按照2个一组的子数组的形式返回,如有多余的,则自己为一个子数组。

        let targetList = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11]]
    

    实现算法 时间复杂度:O(n)

    //分割数组
    func dealListToTwoSubList<T>(list: [T]) -> [[T]] {
        
        let count = list.count/2
        let hasSingleValue = list.count%2 == 1
        
        var targetList: [[T]] = []
        for i in 0..<count {
            let firstIndex = i * 2
            let subList = Array(list[firstIndex...firstIndex+1])
            targetList.append(subList)
        }
        
        //有余数, 加上最后一个
        if hasSingleValue {
            if let lastItem = list.last {
                var subList: [T] = []
                subList.append(lastItem)
                targetList.append(subList)
            }
        }
        
        
        print("\(targetList)")
        return targetList
    }
    

    相关文章

      网友评论

          本文标题:Swift 数组平分

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