All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0601_0700.s0665_non_decreasing_array.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g0601_0700.s0665_non_decreasing_array;

// #Medium #Array #2022_03_22_Time_1_ms_(86.75%)_Space_54.7_MB_(6.25%)

/**
 * 665 - Non-decreasing Array\.
 *
 * Medium
 *
 * Given an array `nums` with `n` integers, your task is to check if it could become non-decreasing by modifying **at most one element**.
 *
 * We define an array is non-decreasing if `nums[i] <= nums[i + 1]` holds for every `i` ( **0-based** ) such that (`0 <= i <= n - 2`).
 *
 * **Example 1:**
 *
 * **Input:** nums = [4,2,3]
 *
 * **Output:** true
 *
 * **Explanation:** You could modify the first `4` to `1` to get a non-decreasing array.
 *
 * **Example 2:**
 *
 * **Input:** nums = [4,2,1]
 *
 * **Output:** false
 *
 * **Explanation:** You can't get a non-decreasing array by modify at most one element.
 *
 * **Constraints:**
 *
 * *   `n == nums.length`
 * *   1 <= n <= 104
 * *   -105 <= nums[i] <= 105
**/
public class Solution {
    public boolean checkPossibility(int[] nums) {
        int count = 0;
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] < nums[i - 1]) {
                if (i - 2 >= 0 && nums[i] < nums[i - 2]) {
                    nums[i] = nums[i - 1];
                }
                count++;
            }
            if (count >= 2) {
                return false;
            }
        }
        return true;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy