1299. 将每个元素替换为右侧最大元素 - 力扣(LeetCode)


可以按照以下步骤解决这个问题:
-
从右到左遍历数组,找到当前元素右边的最大元素。
-
对于每个元素,将它替换为右边最大的元素。
-
如果是最后一个元素,则替换为 -1。
可以使用一个变量 max_right 来跟踪当前右边最大的元素。
下面是 Python 代码实现:
def replaceElements(arr):
max_right = -1 # 最后一个元素的右边没有元素,用 -1 替代
for i in range(len(arr) - 1, -1, -1): # 从右往左遍历
temp = arr[i] # 保存当前元素
arr[i] = max_right # 将当前元素替换为右边的最大元素
max_right = max(max_right, temp) # 更新右边最大值
return arr
示例:
输入:
arr = [17, 18, 5, 4, 6, 1]
输出:
[18, 6, 6, 6, 1, -1]
解释:
-
第一个元素
17被替换为右边最大元素18。 -
第二个元素
18被替换为右边最大元素6。 -
第三个元素
5被替换为右边最大元素6。 -
第四个元素
4被替换为右边最大元素6。 -
第五个元素
6被替换为右边最大元素1。 -
最后一个元素
1被替换为-1。
这个方法的时间复杂度是 O(n),其中 n 是数组的长度。
228

被折叠的 条评论
为什么被折叠?



