题目描述
解题思路:想着最多修改一次,就遍历修改,遇见不符合条件的有两种情况,1、修改前数2、修改后数。我无法判断修改条件,最后还是看了题解。
class Solution {
public:
bool checkPossibility(vector<int>& nums) {
int cnt = 0;
for(int i = 0; i < nums.size()-1; ++i){
if(nums[i]>nums[i+1]){
cnt++;
if(cnt == 2) return false;
if(i > 0 && nums[i+1] < nums[i-1]){//修改条件
nums[i+1] = nums[i];
}
}
}
return true;
}
};