leetcode-12双周赛-1243-数组变换

Posted 真不知道叫啥好

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-12双周赛-1243-数组变换相关的知识,希望对你有一定的参考价值。

题目描述:

 

 自己的提交:

class Solution:
    def transformArray(self, arr: List[int]) -> List[int]:
        if len(arr) < 3: return arr
        flag = True
        while flag:
            tmp = []
            tmp.append(arr[0])
            for i in range(1,len(arr)-1):
                if arr[i] > arr[i-1] and arr[i] > arr[i+1]:
                    tmp.append(arr[i] - 1)
                elif arr[i] < arr[i-1] and arr[i] < arr[i+1]:
                    tmp.append(arr[i] + 1)
                else:
                    tmp.append(arr[i])
            tmp.append(arr[-1])
            if arr == tmp:
                flag = False
            arr = tmp
        return arr

优化:

class Solution:
    def transformArray(self, A: List[int]) -> List[int]:
        change = 1
        n = len(A)
        while change:
            change = 0
            B = A[:]
            for i in range(1, n - 1):
                if A[i-1] < A[i] > A[i+1]:
                    B[i] -= 1
                    change = 1
                if A[i-1] > A[i] < A[i+1]:
                    B[i] += 1
                    change = 1
            A = B
        return B

 

以上是关于leetcode-12双周赛-1243-数组变换的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 第 55 场双周赛 / 第 247 场周赛

LeetCode双周赛10

LeetCode852. 山脉数组的峰顶索引 / 374. 猜数字大小 / 278. 第一个错误的版本 / 第 54 场双周赛 / 第 245 场周赛

leetcode-15双周赛-1287-有序数组中出现次数超过25%的元素

[leetcode 双周赛 11] 1228 等差数列中缺失的数字

解题报告力扣 第 74 场双周赛