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