题目描述:判断一个数组是否能最多只修改一个数就成为非递减数组。
public boolean checkPossibility(int[] nums) {
if(nums.length <= 1) return true;
//修改次数
int count = 0;
for(int i = 1; i < nums.length; i ++) {
//Non-decreasing
if(nums[i - 1] <= nums[i]) {
continue;
}
//decreasing
else {
if(i - 2 >= 0 && nums[i - 2] > nums[i]) {
nums[i] = nums[i - 1];
}
else {
nums[i - 1] = nums[i];
}
count ++;
}
if(count > 1) return false;
}
return true;
}