2202. K 次操作后最大化顶端元素

79 阅读1分钟

题目:
leetcode.cn/problems/ma…

算法:
方法一:  分类讨论题

func maximumTop(nums []int, k int) int {
    n := len(nums)
    maxVal := -1
    if n == 1 {
        if k % 2 == 1 {
            return - 1
        }
        return nums[0]
    }

    if k <= 1 {
        return nums[k]
    }
    if k == n {
        for i := 0; i <= n - 2; i ++ {
            maxVal = max(maxVal, nums[i])
        }
        return maxVal
    }
    if k > n {
        for i := 0; i <= n -1; i ++ {
            maxVal = max(maxVal, nums[i])
        }
        return maxVal
    }
    // 1 < k < n
    for i := 0; i <= k - 2; i ++ {
            maxVal = max(maxVal, nums[i])
    }
    return max(maxVal, nums[k])
}

func max(a, b int) int {
    if a >b {
        return a
    }
    return b
}