Swift 数组平分

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

需求:
将一个数组

    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
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。