首先,給你乙個初始陣列 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 ...