# 665.Non-Decreasing Array

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.
Note: The n belongs to [1, 10,000].

class Solution {
public:
bool checkPossibility(vector<int>& nums) {
if(nums.size()<3) return true;
int index=nums.size();
for(int i=1;i<nums.size();i++)
{
if(nums[i-1] >nums[i] )
{
index=i;
break;
}
}
if( index>=nums.size()-1) return true;
for(int i=index+1;i<nums.size();i++)
{
if(nums[i]<nums[i-1]) return false;
}
if(index ==1 ) return true;
//cout<<index<<endl;
if( nums[index-2]<=nums[index]) return true;
if( nums[index-1]<=nums[index+1]) return true;
return false;
}
};