leetcode 665.非递减数列
https://leetcode-cn.com/problems/non-decreasing-array/submissions/
给定数组,求去掉一个数是否能构成非递减数列。
遍历数组,用一个变量f来表示要去掉几个数才能使数列变成非递减数列。需要注意的是不能只判断nums[i-1]和nums[i]的关系,还要判断nums[i-2]和nums[i]的大小关系。防止[4,2,3]这种情况的误判。
class Solution { public boolean checkPossibility(int[] nums) { int f=0; for(int i=1;i<nums.length;i++){ if(nums[i]>=nums[i-1]) continue; f++; if(i-2>=0&&nums[i-2]>nums[i]){ nums[i]=nums[i-1]; } else{ nums[i-1]=nums[i]; } } if(f>1) return false; return true; } }