LeetCode1299。各要素を右側の最大の要素に置き換えます

配列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