s4553711
9/5/2017 - 3:16 PM

665.cpp

class Solution {
public:
    bool checkPossibility(vector<int>& nums) {
        if (nums.size() == 1) return true;
        int size = nums.size();
        int count = 0;
        for(int i = 0; i < size - 1; i++) {
            if (nums[i] > nums[i+1]) {
                if (i == 0 || i + 1 == size - 1) {
                    count++;
                } else {
                    if (nums[i - 1] >= nums[i + 1]) {
                        nums[i+1] = nums[i];
                    } else {
                        nums[i] = nums[i-1];
                    }
                    count++;
                }
            }
            if (count > 1) break;
        }
        return count <= 1 ? true : false;
    }
};