665. Non-decreasing Array
Given an array with n
integers, your task is to check if it could become non-decreasing by modifying at most 1
element.
We define an array is non-decreasing if array[i] <= array[i + 1]
holds for every i
(1 <= i < n).
Example 1:
Input: [4,2,3]
Output: True
Explanation: You could modify the first 4 to 1 to get a non-decreasing array.
Example 2:
Input: [4,2,1]
Output: False
Explanation: You can't get a non-decreasing array by modify at most one element.
解题要点:
从i = 1开始,如若当前数大于等于前一位数(符合递增规则)直接进入下一位数。如当前数i >= 2 且小于前前位数,则赋当前值为前一位数;反之,赋前一位值为当前值。
class Solution {
public boolean checkPossibility(int[] nums) {
int res = 0;
for(int i = 1; i < nums.length; i++){
if(nums[i] >= nums[i-1]) continue;
res++;
if(i >= 2 && nums[i] < nums[i - 2]){
nums[i] = nums[i - 1];
}else{
nums[i - 1] = nums[i];
}
}
return res <= 1;
}
}
Last updated
Was this helpful?