swift 第6课排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 第6课排序相关的知识,希望对你有一定的参考价值。

import Foundation
import Glibc

public func solution(_ A : inout [Int]) -> Int {
    var left: [Int] = []
    var right: [Int] = []
    for (index, value) in A.enumerated() {
        left.append(index - value)
        right.append(index + value)
    }
    
    left.sort { $0 < $1 }
    right.sort { $0 < $1 }
    
    var result = 0
    var current = 0
    var leftIndex = 0
    var rightIndex = 0
    
    for _ in A {
        while leftIndex < A.count && left[leftIndex] <= right[rightIndex] {
            current += 1
            leftIndex += 1
        }
        
        current -= 1
        result += current
        rightIndex += 1
        if result > 10000000 {
            return -1
        }
    }
    
    return result
}

以上是关于swift 第6课排序的主要内容,如果未能解决你的问题,请参考以下文章

1.《SQL必知必会》--(更新中...)

使用 Swift 开发应用程序 - 第 13 课 - 练习:“isBelow13”

Swift小白的第二课-第一个项目

第47课 选择排序和插入排序

Spark IMF传奇行动第19课:spark排序总结

swift 数组部分排序