当前位置: 首页 > news >正文

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=-1
        for i in range(len(arr)-1,-1,-1):
            cur=arr[i]
            arr[i]=tmp
            tmp=max(cur,tmp)
        return arr


相关文章:

  • 【DL】浅谈深度学习中的知识蒸馏 | 2019 CVPR | 中间层知识蒸馏
  • MQ导致的系统登录没反应
  • 根据POD名称生成 三部曲:get、describe、log、exec
  • DeepSeek部署到本地(解决ollama模型下载失败问题)
  • JAVA系列之数组的秘密(数组的一般用法+力扣 斯坦福大学练习精解)
  • 同花顺Java开发面试题及参考答案 (上)
  • 2025-2-18-4.7 二叉树(基础题)
  • C/C++ | 面试题每日一练 (1)
  • 【HBase】HBaseJMX 接口监控信息实现钉钉告警
  • 训练营3,
  • 第二章:16.3 构建决策树的过程
  • 统信服务器操作系统V20 1070A 安装docker新版本26.1.4
  • Unity项目实战-订阅者发布者模式
  • Day4:强化学习之Qlearning走迷宫
  • ELF,链接,加载
  • oracle取金额的绝对值
  • c# -新属性-模式匹配、弃元、析构元组和其他类型
  • restful 状态码
  • 命令注入绕过
  • Spring Boot 自动装配机制原理详解
  • 6连败后再战萨巴伦卡,郑钦文期待打出更稳定发挥
  • 93岁南开退休教授陈生玺逝世,代表作《明清易代史独见》多次再版
  • 国务院新闻办公室发布《新时代的中国国家安全》白皮书
  • 宁德时代港股募资预计最高至50亿美元:90%将投向匈牙利项目
  • 河南洛阳新安县煤渣倾倒耕地:多年难恢复,为何至今未解决?
  • 汇源果汁发文:经营情况一切正常