665. Non-decreasing Array 非递减数组


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


给定一个包含n个整数的数组,您的任务是通过修改最多1个元素来检查它是否可以变为不减少。 如果array [i] <= array [i + 1]对于每个i(1 <= i <n)成立,我们定义一个数组是非递减的。

  1. class Solution(object):
  2. def checkPossibility(self, nums):
  3. """
  4. :type nums: List[int]
  5. :rtype: bool
  6. """
  7. times = 0
  8. for i in range(1, len(nums)):
  9. if nums[i] < nums[i - 1]:
  10. times += 1
  11. if times == 2:
  12. return False
  13. if (i != 1 and i != len(nums) - 1):
  14. if (nums[i - 1] > nums[i + 1] and nums[i] < nums[i - 2]):
  15. return False
  16. return True






原文地址:https://www.cnblogs.com/xiejunzhao/p/7441919.html