码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-11-05 13:31:16      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:range   com   int   span   tmp   div   pen   lag   pre   

题目描述:

技术图片

 

 自己的提交:

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-数组变换

标签:range   com   int   span   tmp   div   pen   lag   pre   

原文地址:https://www.cnblogs.com/oldby/p/11797701.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!