当前位置: 代码迷 >> 综合 >> 【LeetCode】1299. 将每个元素替换为右侧最大元素(Java)
  详细解决方案

【LeetCode】1299. 将每个元素替换为右侧最大元素(Java)

热度:32   发布时间:2024-02-25 12:12:15.0

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

在这里插入图片描述

  相关解决方案