https://leetcode.com/problems/non-decreasing-array/description/

#include <iostream>
#include <vector>
#include <climits>

using namespace std;

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

留言

這個網誌中的熱門文章

https://leetcode.com/contest/leetcode-weekly-contest-52/problems/longest-univalue-path/

https://leetcode.com/contest/leetcode-weekly-contest-52/problems/maximum-sum-of-3-non-overlapping-subarrays/