主页 > IT业界  > 

Leetcode1299:将每个元素替换为右侧最大元素

Leetcode1299:将每个元素替换为右侧最大元素
题目描述:

给你一个数组 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 arr

标签:

Leetcode1299:将每个元素替换为右侧最大元素由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Leetcode1299:将每个元素替换为右侧最大元素