[leetcode]-665. Non-decreasing Array(C语言)

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].

bool checkPossibility(int* nums, int numsSize) {
    if(numsSize==1)
        return true;
    int i,j,k=0;
    for(i=0;i<numsSize-1;i++)
    {
        if(nums[i]>nums[i+1])
        {
            k++;
            if(i==0)
                continue;
            if(nums[i-1]>nums[i+1])
                nums[i+1]=nums[i];
            else
                nums[i]=nums[i-1];
            if(k==2)
                return false;
        }
    }
    return true;
}

猜你喜欢

转载自blog.csdn.net/shen_zhu/article/details/82780392