5096 陣列變換

2021-09-29 07:08:39 字數 942 閱讀 8196

首先,給你乙個初始陣列 arr。然後,每天你都要根據前一天的陣列生成乙個新的陣列。

第 i 天所生成的陣列,是由你對第 i-1 天的陣列進行如下操作所得的:

假如乙個元素小於它的左右鄰居,那麼該元素自增 1。

假如乙個元素大於它的左右鄰居,那麼該元素自減 1。

首、尾元素 永不 改變。

過些時日,你會發現陣列將會不再發生變化,請返回最終所得到的陣列。

示例 1:

輸入:[6,2,3,4]

輸出:[6,3,3,4]

解釋:第一天,陣列從 [6,2,3,4] 變為 [6,3,3,4]。

無法再對該陣列進行更多操作。

示例 2:

輸入:[1,6,3,4,3,5]

輸出:[1,4,4,4,4,5]

解釋:第一天,陣列從 [1,6,3,4,3,5] 變為 [1,5,4,3,4,5]。

第二天,陣列從 [1,5,4,3,4,5] 變為 [1,4,4,4,4,5]。

無法再對該陣列進行更多操作。

1 <= arr.length <= 100

1 <= arr[i] <= 100

class solution:

def transformarray(self, arr: list[int]) -> list[int]:

cpy = arr.copy()

for i in range(1, len(arr) - 1):

if arr[i] < min(arr[i - 1], arr[i + 1]):

cpy[i] += 1

elif arr[i] > max(arr[i - 1], arr[i + 1]):

cpy[i] -= 1

return cpy if cpy == arr else self.transformarray(cpy)

1243 陣列變換

題目描述 首先,給你乙個初始陣列 arr。然後,每天你都要根據前一天的陣列生成乙個新的陣列。第 i 天所生成的陣列,是由你對第 i 1 天的陣列進行如下操作所得的 假如乙個元素小於它的左右鄰居,那麼該元素自增 1。假如乙個元素大於它的左右鄰居,那麼該元素自減 1。首 尾元素 永不 改變。過些時日,你...

ndarray陣列變換

1 import numpy as np 1 a np.arange 24 2 a array 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 reshape 檢視,不修改原陣列 1 a.reshape 4,6 array ...

陣列序列變換1

問題描述 陣列序列變換,將陣列中元素以新的次序重新排列得到新的陣列,例如a 變換序列p 將變換應用到陣列a中得到新的陣列b 要求在不申請新的陣列空間,在a陣列上直接進行處理完成 include include using namespace std int movestep vectorp,int ...