给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。 完成所有替换操作后,请你返回这个数组。

给定数组arr,将每个元素替换为其右侧的最大元素,最后一个元素替换为-1。例如,输入[17,18,5,4,6,1],输出[18,6,6,6,1,-1]。本文介绍两种实现方法。" 105800309,9379449,理解计算机图形学:着色频率与渲染管线,"['图形学', '3d渲染', '计算机图形学', '着色器', '纹理映射']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

 

示例:

输入:arr = [17,18,5,4,6,1]
输出:[18,6,6,6,1,-1]
 

提示:

1 <= arr.length <= 10^4
1 <= arr[i] <= 10^5

方法一:

 

class Solution {
    public int[] replaceElements(int[] arr) {
        int[] res = new int[arr.length];
        for(int i= 0; i<arr.length; i++){
            res[i] = max(arr, i);
        }
        return res;
    }

    private int max(int[] arr, int i){
        if(i== arr.length-1) return -1;
        int res =0;
        if(i+1 < arr.length) res = arr[i+1]; 

        
        for(int index = i+1; index<arr.length; index++){
            if(index +1< arr.length && res < arr[index+1])
                res = arr[index +1];
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值