首页 > 试题广场 >

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

[编程题]将每个元素替换为右侧最大元素
  • 热度指数:393 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

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

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

示例:

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

提示:





示例1

输入

[17,18,5,4,6,1]

输出

[18,6,6,6,1,-1]
function replaceElements( arr ) {
    let newArr = [];
    while(arr.length) {
        arr.shift();
        if(!arr.length) {
            newArr.push(-1)
        } else {
           newArr.push(Math.max(...arr)) 
        }
    }
    return newArr
}

发表于 2021-01-19 18:28:27 回复(0)
function max(arr) {
    return arr.sort((x, y) => {
        return x - y
    })[arr.length - 1];
}

function replaceElements(arr) {
    if (arr.length) {
        // write code here
        return arr = arr.map((item, index) => {
            if (index === arr.length - 1) {
                return -1
            } else {
                return max(arr.slice(index + 1, arr.length));
            }
        })
    } else {
        return [];
    }

}
module.exports = {
    replaceElements : replaceElements
};

编辑于 2020-12-21 15:43:10 回复(0)
简单模拟一下就行
import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 
     * @param arr int整型一维数组 
     * @return int整型一维数组
     */
    public int[] replaceElements (int[] arr) 
    {
        int n = arr.length;
        int[] answer = new int[n];
        int curr = -1;
        for (int i = n - 1; i >= 0; i--)
        {
            answer[i] = curr;
            curr = Math.max(curr, arr[i]);
        }
        return answer;
    }
}


发表于 2025-01-26 15:37:38 回复(0)
let rightMax=(arr)=>{ let maxt=-1 for(let i=arr.length-1;i>=0;i--){ let nowt=arr[i] if(arr[i]>maxt){ arr[i]=maxt maxt=nowt }else{ arr[i]=maxt } } return arr }
发表于 2022-08-30 15:40:34 回复(0)
function replaceElements( arr ) {
  for (let i=0;i<arr.length-2;i++){
   let newArr =  arr.slice(i+1,arr.length-1).sort((a,b)=>a-b)
   arr[i]=newArr[newArr.length-1]
  }
  arr[arr.length-2] = arr[arr.length-1]
  arr[arr.length-1] = -1
  return arr
}
这样写是对的吗
发表于 2021-03-14 11:27:42 回复(0)