Leetcode1299:将每个元素替换为右侧最大元素
- IT业界
- 2025-09-02 06:24:02

题目描述:
给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。
完成所有替换操作后,请你返回这个数组。
代码思路: 方法 replaceElements输入参数:接收一个整数列表 arr。
初始化:创建一个变量 tmp 并初始化为 -1。这个变量将用于存储当前遍历到的元素右侧的最大值。
遍历数组:从数组的最后一个元素开始向前遍历(即从右到左)。这样做是为了确保在替换当前元素时,其右侧的所有元素都已经被遍历过,因此 tmp 中存储的是当前元素右侧的最大值。
替换元素:
在每次迭代中,首先将当前元素的值存储在变量 cur 中(虽然在这个特定的实现中,cur 的值在后续操作中没有被直接使用,但保留这个步骤有助于理解代码的意图)。然后,将当前元素 arr[i] 替换为 tmp 的值。这样,arr[i] 就被替换为了其右侧的最大值(或者对于最后一个元素来说,是 -1)。最后,更新 tmp 的值为当前元素 cur 和 tmp 中的较大值。注意,这个更新操作是在替换当前元素之后进行的,因此它反映的是当前元素之前(即右侧,但因为我们是从右到左遍历的,所以实际上是“之前已遍历过的部分”)的最大值。返回结果:遍历完成后,返回修改后的数组 arr。
代码实现: class Solution: def replaceElements(self, arr: List[int]) -> List[int]: tmp=-1 for i in range(len(arr)-1,-1,-1): cur=arr[i] arr[i]=tmp tmp=max(cur,tmp) return arrLeetcode1299:将每个元素替换为右侧最大元素由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Leetcode1299:将每个元素替换为右侧最大元素”
下一篇
MQ导致的系统登录没反应