欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > Leetcode1299:将每个元素替换为右侧最大元素

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

2025/6/20 19:48:39 来源:https://blog.csdn.net/m0_67598823/article/details/145717425  浏览:    关键词:Leetcode1299:将每个元素替换为右侧最大元素

题目描述:

给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。

完成所有替换操作后,请你返回这个数组。

代码思路:

方法 replaceElements

  1. 输入参数:接收一个整数列表 arr

  2. 初始化:创建一个变量 tmp 并初始化为 -1。这个变量将用于存储当前遍历到的元素右侧的最大值。

  3. 遍历数组:从数组的最后一个元素开始向前遍历(即从右到左)。这样做是为了确保在替换当前元素时,其右侧的所有元素都已经被遍历过,因此 tmp 中存储的是当前元素右侧的最大值。

  4. 替换元素

    • 在每次迭代中,首先将当前元素的值存储在变量 cur 中(虽然在这个特定的实现中,cur 的值在后续操作中没有被直接使用,但保留这个步骤有助于理解代码的意图)。
    • 然后,将当前元素 arr[i] 替换为 tmp 的值。这样,arr[i] 就被替换为了其右侧的最大值(或者对于最后一个元素来说,是 -1)。
    • 最后,更新 tmp 的值为当前元素 cur 和 tmp 中的较大值。注意,这个更新操作是在替换当前元素之后进行的,因此它反映的是当前元素之前(即右侧,但因为我们是从右到左遍历的,所以实际上是“之前已遍历过的部分”)的最大值。
  5. 返回结果:遍历完成后,返回修改后的数组 arr

代码实现:

class Solution:def replaceElements(self, arr: List[int]) -> List[int]:tmp=-1for i in range(len(arr)-1,-1,-1):cur=arr[i]arr[i]=tmptmp=max(cur,tmp)return arr

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词