classSolution{publicint[]replaceElements(int[] arr){int max =-1;int len = arr.length;for(int i = len -1; i >=0; i--){int tmp = arr[i];
arr[i]= max;
max = Math.max(tmp, max);}return arr;}}
本地测试代码
package com.company;import java.util.Arrays;publicclassSolution_1299{publicstaticint[]replaceElements(int[] arr){int max =-1;int len = arr.length;for(int i = len -1; i >=0; i--){int tmp = arr[i];
arr[i]= max;
max = Math.max(tmp, max);}return arr;}publicstaticvoidmain(String[] args){
System.out.println(Arrays.toString(replaceElements(newint[]{17,18,5,4,6,1})));}}
题目链接https://leetcode-cn.com/problems/replace-elements-with-greatest-element-on-right-side/解题思路逆序遍历。首先记录右边最大值max位最后一个值然后逆序遍历更新max,注意使用tmp记住当前的arr[i]即可AC代码class Solution { public int[] replaceElements(int[] arr) { int max = -1;