LeetCode題解:1299.將每個元素替換爲右側最大元素

將每個元素替換爲右側最大元素

一、LeetCode題解

瞧一瞧~

二、算法題

題目

給你一個數組 arr ,請你將每個元素用它右邊最大的元素替換,如果是最後一個元素,用 -1 替換。

完成所有替換操作後,請你返回這個數組。

示例:

輸入:arr = [17,18,5,4,6,1]
輸出:[18,6,6,6,1,-1]

解法一 (倒序)

思路

代碼

/**
 * @param {number[]} arr
 * @return {number[]}
 */
var replaceElements = function(arr) {
    var rightMax = arr[arr.length - 1];
    arr[arr.length - 1] = -1;
    for (let i = arr.length - 2; i >= 0; i--) {
        var t = arr[i];
        arr[i] = rightMax;
        if (t > rightMax) rightMax = t;
    }
    return arr;
};

結果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章