给你一个数组 arr
,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1
替换。
完成所有替换操作后,请你返回这个数组。
示例 1:
输入:arr = [17,18,5,4,6,1] 输出:[18,6,6,6,1,-1] 解释: - 下标 0 的元素 --> 右侧最大元素是下标 1 的元素 (18) - 下标 1 的元素 --> 右侧最大元素是下标 4 的元素 (6) - 下标 2 的元素 --> 右侧最大元素是下标 4 的元素 (6) - 下标 3 的元素 --> 右侧最大元素是下标 4 的元素 (6) - 下标 4 的元素 --> 右侧最大元素是下标 5 的元素 (1) - 下标 5 的元素 --> 右侧没有其他元素,替换为 -1
示例 2:
输入:arr = [400] 输出:[-1] 解释:下标 0 的元素右侧没有其他元素。
提示:
1 <= arr.length <= 104
1 <= arr[i] <= 105
import java.util.Arrays;
public class Solution1299 {
public int[] replaceElements(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int temp = arr[i + 1];
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] > temp) {
temp = arr[j];
}
arr[i] = temp;
}
}
arr[arr.length - 1] = -1;
return arr;
}
public static void main(String[] args) {
Solution1299 sol = new Solution1299();
int[] arr = { 17, 18, 5, 4, 6, 1 };
System.out.println(Arrays.toString(sol.replaceElements(arr)));
}
}