text 获取多维数组的切片

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text 获取多维数组的切片相关的知识,希望对你有一定的参考价值。


/*
 * Complete the mergeArrays function below.
 */
func mergeArrays(arr: [[Int]]) -> [Int] {
     guard arr.count > 1 else {
         return arr[0]
     }
     let mid = arr.count / 2
     var leftMultidimensionalArray = [[Int]]()
     for x in 0..<mid {
         leftMultidimensionalArray.append(arr[x])
     }
     var rightMultidimensionalArray = [[Int]]()
     for x in mid..<arr.count {
         rightMultidimensionalArray.append(arr[x])
     }
     let leftArray = mergeArrays(arr: leftMultidimensionalArray)
     let rightArray = mergeArrays(arr: rightMultidimensionalArray)
     return merge(leftArray, rightArray)
}

func merge(_ leftArray: [Int], _ rightArray: [Int]) -> [Int] {
    var leftArrayIndex = 0
    var rightArrayIndex = 0
    var mergeSortedArray: [Int] = []
    
    while leftArrayIndex < leftArray.count && rightArrayIndex < rightArray.count {
        let leftArrayValue = leftArray[leftArrayIndex]
        let rightArrayValue = rightArray[rightArrayIndex]
        
        if leftArrayValue < rightArrayValue {
            mergeSortedArray.append(leftArrayValue)
            leftArrayIndex += 1
        } else if leftArrayValue > rightArrayValue {
            mergeSortedArray.append(rightArrayValue)
            rightArrayIndex += 1 
        } else {
            mergeSortedArray.append(leftArrayValue)
            leftArrayIndex += 1 
            mergeSortedArray.append(rightArrayValue)
            rightArrayIndex += 1 
        }
    }
        
        if leftArrayIndex < leftArray.count {
            mergeSortedArray.append(contentsOf: leftArray[leftArrayIndex...])
        }
        if rightArrayIndex < rightArray.count {
            mergeSortedArray.append(contentsOf: rightArray[rightArrayIndex...])
        }
        
        return mergeSortedArray
    }

以上是关于text 获取多维数组的切片的主要内容,如果未能解决你的问题,请参考以下文章

在 Julia 中切片和广播多维数组:meshgrid 示例

GO语言切片Slice数组Array的比较;利用多维切片接受EXCEL内容的输出

Go语言容器—数组切片

Python——ndarray多维数组基本操作(1)

Go基础2

Go基础2