题目

给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。
完成所有替换操作后,请你返回这个数组。
示例 1:
输入:arr = [17,18,5,4,6,1]
输出:[18,6,6,6,1,-1]
解释:

  • 下标 0 的元素 --> 右侧最大元素是下标 1 的元素 (18)
  • 下标 1 的元素 --> 右侧最大元素是下标 4 的元素 (6)
  • 下标 2 的元素 --> 右侧最大元素是下标 4 的元素 (6)
  • 下标 3 的元素 --> 右侧最大元素是下标 4 的元素 (6)
  • 下标 4 的元素 --> 右侧最大元素是下标 5 的元素 (1)
  • 下标 5 的元素 --> 右侧没有其他元素,替换为 -1
    示例 2:
    输入:arr = [400]
    输出:[-1]
    解释:下标 0 的元素右侧没有其他元素。
    提示:
    1 <= arr.length <= 10^4
    1 <= arr[i] <= 10^5
    来源:力扣(LeetCode)

解题思路

  这道题只需要维护一个最大值,并且从尾巴向头部遍历即可。

class Solution:def replaceElements(self, arr: List[int]) -> List[int]:temp=[-1]MAX=arr[-1]for i in range(len(arr)-2,-1,-1):if arr[i+1]>MAX:MAX=arr[i+1]temp.append(MAX)return temp[::-1]

LeetCode简单题之将每个元素替换为右侧最大元素相关推荐

  1. 1299. 将每个元素替换为右侧最大元素

    2020-04-21 1.题目描述 将每个元素替换为右侧最大元素 2.题解 从后往前进行遍历,求出最大值即可. 3.题解 class Solution { public:vector<int&g ...

  2. leetcode1299. 将每个元素替换为右侧最大元素

    给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换. 完成所有替换操作后,请你返回这个数组. 示例: 输入:arr = [17,18,5,4,6,1] 输 ...

  3. LeetCode简单题之到目标元素的最小距离

    题目 给你一个整数数组 nums (下标 从 0 开始 计数)以及两个整数 target 和 start ,请你找出一个下标 i ,满足 nums[i] == target 且 abs(i - sta ...

  4. LeetCode简单题之删除排序链表中的重复元素

    题目 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 .返回 已排序的链表 . 示例 1: 输入:head = [1,1,2] 输出:[1,2] 示例 2: 输入:h ...

  5. LeetCode简单题之数组序号转换

    题目 给你一个整数数组 arr ,请你将数组中的每个元素替换为它们排序后的序号. 序号代表了一个元素有多大.序号编号的规则如下: 序号从 1 开始编号. 一个元素越大,那么序号越大.如果两个元素相等, ...

  6. LeetCode简单题之按奇偶排序数组

    题目 给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素. 你可以返回满足此条件的任何数组作为答案. 示例: 输入:[3,1,2,4] 输出:[2,4,3,1 ...

  7. LeetCode简单题之找到所有数组中消失的数字

    题目 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内.请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果. 示例 1 ...

  8. LeetCode简单题之寻找数组的中心下标

    题目 给你一个整数数组 nums ,请计算数组的 中心下标 . 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和. 如果中心下标位于数组最左端,那么左侧数之和视为 0 ...

  9. LeetCode算法题1:判断整数数组是否存在重复元素

    文章目录 前言 一.题目描述 二.思路 1.暴力破解 2.空间换时间(有点像桶排序思想) 3,排序 总结 前言 本系列文章为leetCode刷题笔记,仅供参考. 一.题目描述 给定一个整数数组,判断是 ...

最新文章

  1. Vue报错:Uncaught RangeError: Maximum call stack size exceeded
  2. 整理下java六种单例模式
  3. json.dumps和loads方法
  4. 计算机操作系统思维导图_我在b站学计算机
  5. linux硬盘转windows7,记——第一次上手UEFI电脑,将mbr硬盘的Windows7和Linux转为gpt+uefi启动...
  6. 数据结构杂谈(六)——队列
  7. python解释器环境中用于表示上一次运算结果的特殊变量_判断正误 PUSH CL_学小易找答案...
  8. WINDOWS操作系统中可以允许最大的线程数
  9. TwentyTwelve透明主题二次美化版
  10. ASP.NET常用代码汇总
  11. 怎样将树的中序遍历的数输入到一个数组中_数据结构与算法-二叉查找树平衡(DSW)...
  12. linux系统安装redis,外部无法访问
  13. Navicat12及以上才能显示json数据
  14. python求解三角形第三边长
  15. html静态页面实现微信分享思路
  16. 陕西神木市一煤矿发生冒顶事故 约20人被困井下
  17. 怎么使用QQ音乐api搭建个人音乐站点
  18. .dSYM文件的生成
  19. 基于AD9833的三角波及正弦波发生器资料(含51程序)
  20. useragent android,获取android默认的useragent

热门文章

  1. 在kotlin companion object中读取Bean,注入Bean对象
  2. 2022-2028年中国PE膜产业竞争现状及发展前景分析报告
  3. 微信支付回调重复通知,正确的响应
  4. pytorch旧版安装
  5. Redis概述和基础
  6. LeetCode中等题之两两交换链表中的节点
  7. LeetCode简单题之验证外星语词典
  8. 合肥工业大学—SQL Server数据库实验八:使用聚集函数的SELECT语句
  9. MindSpore图像分类模型支持(Lite)
  10. 使嵌入式系统调试更容易:有用的硬件和软件提示