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;
    }
};

猜你喜欢

转载自blog.csdn.net/tus00000/article/details/112644962