给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。
完成所有替换操作后,请你返回这个数组。
解法一
正序遍历,暴力破解
class Solution {
public int[] replaceElements(int[] arr) {
for (int i = 0; i < arr.length; i++) {
//如果是最后一位,替换成-1if (i == arr.length - 1) arr[i] = -1;else {
//遍历后面的元素int max = 0;for (int j = i+1; j < arr.length; j++) {
if (arr[j] > max) max = arr[j];}arr[i] = max;}}return arr;}
}
解法二
反序遍历
class Solution {
public int[] replaceElements(int[] arr) {
//反序遍历int max = arr[arr.length - 1];for (int i = arr.length - 1; i >= 0; i--) {
if (i == arr.length - 1) {
arr[i] = -1;continue;}if (arr[i] > max) {
int temp = arr[i];arr[i] = max;max = temp;} else {
arr[i] = max;}}return arr;}
}