#include <iostream>
#include <vector>
using namespace std;
class Solution {
public:
bool checkPossibility(vector<int>& nums) {
int nCur = 1;
bool bRet = true;
if(nums.size() == 1)
return true;
for(int i=0; i<nums.size()-1; i++)
{
if(nums[i] > nums[i+1])
{
if(i==0)
{
nums[i] = nums[i+1];
nCur--;
}
else
{
if(nums[i-1] < nums[i] && nums[i-1] <= nums[i+1])
{
nums[i] = nums[i+1];
nCur--;
continue;
}
if(nums[i-1] <= nums[i] && nums[i-1] > nums[i+1])
{
nums[i+1] = nums[i];
nCur--;
continue;
}
}
}
}
if(nCur < 0)
{
bRet = false;
}
return bRet;
}
};
int main()
{
vector<int > vecTest;
vecTest.push_back(3);
vecTest.push_back(2);
vecTest.push_back(3);
vecTest.push_back(2);
vecTest.push_back(4);
Solution sl;
cout<<sl.checkPossibility(vecTest)<<endl;
}