nums[i] = y or nums[i + 1] = x;
前一种情况为nums[i]=y,还有一种情况是让nums[i+1]=x,这样就是调整一次情况下,看能否非递减的所有情况了
class Solution {
public:
bool checkPossibility(vector<int> &nums) {
int n = nums.size();
for (int i = 0; i < n - 1; ++i) {
int x = nums[i], y = nums[i + 1];
if (x > y) {
nums[i] = y;
if (is_sorted(nums.begin(), nums.end())) {
return true;
}
nums[i] = x; // 复原
nums[i + 1] = x;//前一种情况为nums[i]=y,还有一种情况是让nums[i+1]=x,这样就是调整一次情况下,看能否非递减的所有情况了
return is_sorted(nums.begin(), nums.end());
}
}
return true;
}
};