Remove One Element to Make the Array Strictly Increasing
给一个数组, 求是否能删除一个后,让数组变成严格递增, 这个题有个陷阱, 就是示例二给的[2,3,1,2], 这个是返回false. 观察一下能看出, [2,3,1]这种, 就是不行的, 找规律发现, 不光需要比较相邻元素, 也要比较删除后的元素. 所以要用当前位置i, 记录删除后的前一个元素i-1的大小.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Solution { public boolean canBeIncreasing(int[] nums) { int count = 0; for(int i = 1; i < nums.length; i++) { if(nums[i - 1] >= nums[i]) count++; if(i >= 2 && nums[i - 2] >= nums[i]) nums[i] = nums[i - 1]; } return count <= 1; } } |