Non-decreasing Array
给一个数组, 求能不能只改变一个元素, 使得数组变成非递减数组.
主要是很多corner cases. 考虑到了就可以
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
class Solution { public boolean checkPossibility(int[] nums) { for(int i = 1; i < nums.length; i++) { if(nums[i - 1] > nums[i]){ if(i + 1 < nums.length) { if(nums[i - 1] > nums[i + 1]) nums[i - 1] = nums[i]; else{ nums[i] = nums[i + 1]; } } else{ nums[i] = nums[i - 1]; } break; } } for(int i = 1; i < nums.length; i++) { if(nums[i - 1] > nums[i]){ return false; } } return true; } } |