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