1class Solution {2public:3vector<int> prevPermOpt1(vector<int> &arr) {4int n = arr.size();5int c1 = n - 2, c2 = n - 1;6while (c1 >= 0 && arr[c1] <= arr[c1 + 1]) c1--;7if (c1 < 0) return arr;8while (arr[c2] >= arr[c1] || c2 > 0 && arr[c2] == arr[c2 - 1]) c2--;9swap(arr[c1], arr[c2]);10return arr;11}12};