Remove One Element to Make the Array Strictly Increasing
给一个数组, 求是否能删除一个后,让数组变成严格递增, 这个题有个陷阱, 就是示例二给的[2,3,1,2], 这个是返回false. 观察一下能看出, [2,3,1]这种, 就是不行的, 找规律发现, 不光需要比较相邻元素, 也要比较删除后的元素. 所以要用当前位置i, 记录删除后的前一个元素i-1的大小.
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;
}
}