class Solution {
public boolean checkPossibility(int[] nums) {
int mark=0;
for(int i=1;i<nums.length && mark<2;i++) {
if(nums[i]>=nums[i-1]) {
continue;
}
mark++;
if(i-2>=0 && nums[i-2]>nums[i]) {
nums[i]=nums[i-1];
}else {
nums[i-1]=nums[i]; //这行还适用于第一次循环的时候
}
}
return mark<=1;
}
}
需要考虑在出现nums[i+1]<nums[i]的情况时,是改变nums[i]还是nums[i+1],并且需要考虑第一次循环时的情况!!!