將每個元素替換爲右側最大元素
一、LeetCode題解
瞧一瞧~
- 博健的LeetCode題解:Gitbook版本傳送門
- 博健的LeetCode題解:CSDN傳送門
- 前端進階筆記:Gitbook傳送門
二、算法題
題目
給你一個數組 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;
};