LeetCode 1299. 将每个元素替换为右侧最大元素

给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。

完成所有替换操作后,请你返回这个数组。

1 <= arr.length <= 104
1 <= arr[i] <= 105

从后往前遍历将每个值,每个遍历到的值都取其后的最大值即可:

class Solution {
public:
    vector<int> replaceElements(vector<int>& arr) {
        vector<int> behindMax(arr.size());

        behindMax[arr.size() - 1] = -1;
        for (int i = arr.size() - 2; i >= 0; --i) {
            behindMax[i] = max(arr[i + 1], behindMax[i + 1]);
        }

        return behindMax;
    }
};
posted @ 2021-01-14 23:23  epiphanyy  阅读(11)  评论(0)    收藏  举报  来源