> For the complete documentation index, see [llms.txt](https://quenluo.gitbook.io/leecode-python/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://quenluo.gitbook.io/leecode-python/665.-non-decreasing-array.md).

# 665. Non-decreasing Array

## Question 665

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

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

### Answer  <a href="#answer" id="answer"></a>

#### **v1. detect in for loop 75%**

```python
class Solution(object):
    def checkPossibility(self, nums):
        
        ModifyingTimes = 0
        for i in range(1 , len(nums)) :

            if nums[i-1] > nums[i] :
                ModifyingTimes += 1

                # delete left one
                if nums[i-2] < nums[i] or i < 2 :
                    nums[i-1] = nums[i]
                # delete right one
                else:
                    nums[i] = nums[i-1]
                
            if ModifyingTimes > 1 :
                return False
        
        return True
```
