给你一个数组 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];