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].
Answer
v1. detect in for loop 75%
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
Last updated