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 场周赛
LeetCode852. 山脉数组的峰顶索引 / 374. 猜数字大小 / 278. 第一个错误的版本 / 第 54 场双周赛 / 第 245 场周赛
leetcode-15双周赛-1287-有序数组中出现次数超过25%的元素