题解 | #合唱队#

合唱队

https://www.nowcoder.com/practice/6d9d69e3898f45169a441632b325c7b4

import Foundation

var i = 0
while let line = readLine() {
    let parts = line.split(separator: " ")
    if (i == 0) {
        i = i + 1
        continue
    }
    
    if (i == 2) {
        break
    }
    i = i + 1
    // print(parts)
    var arr:[Int] = parts.map { return Int(String($0))!}
    var upArr:[Int] = [Int](repeating: 0, count: arr.count)
    var downArr:[Int] = [Int](repeating: 0, count: arr.count)
    for i in 0 ... parts.count - 1 {
        if i == 0 {
            upArr[0] = 1
            continue
        }
        var up = 1
        if i > 0 {
            for k in 0 ... i - 1 {
                if arr[i] > arr[k] {
                    upArr[i] = upArr[k] + 1
                    up = max(up, upArr[i])
                }
            }
        }
        upArr[i] = up
        
        
        var down = 1
        var j = parts.count - 1 - i
        if j == parts.count - 1 {
            downArr[j] = 1
        } else {
            for k in j + 1 ... parts.count - 1 {
                if arr[j] > arr[k] {
                    downArr[j] = downArr[k] + 1
                    down = max(down, downArr[j])
                }
            }
        }
        downArr[j] = down
    }
    
    var maxValue = 1
    for i in 0 ... arr.count - 1 {
        maxValue = max(upArr[i] + downArr[i] - 1, maxValue)
    }
    
    print(arr.count - maxValue)
}

#终于自己想出来了一个算法题#
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 14:11
很喜欢小米的新车,校招薪资每月22k,攒多久能买?
测试糕手手:别看工资,先看现金流存款。有50W存款以上再考虑,车是消耗品,选适合自己的重要。你有钱就当我没说过
点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务