leetcode665. Non-decreasing Array(非递减数列)JAVA实现

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 boolean checkPossibility(int[] nums) {
        int n, count = 0;
        n = nums.length;
        for(int i = 1; i < n && count < 2; i++)
        {
            if(nums[i] >= nums[i-1]) continue;
            if(i-2>=0 && nums[i] < nums[i-2])
                nums[i] = nums[i-1];
            else
                nums[i-1] = nums[i];
            count++;
        }  
        return count<=1?true:false;
        
    }
}

猜你喜欢

转载自blog.csdn.net/qq_25406563/article/details/84476795