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