Advertisement
jinhuang1102

665. Non-decreasing Array

Jan 16th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.35 KB | None | 0 0
  1. """
  2. 这道题还真把我难住了,看了Grandyang的帖子我才明白。用一下三个例子说明:
  3. 4,2,3
  4. ^
  5. -1,4,2,3
  6.   ^
  7. 2,3,3,2,4
  8.       ^
  9. 在例子1中,4>2, 4前面没有数字了,所以就把4改成2即可。
  10. 在例子2中,4>2, 2大于再前面的数字-1,所以还是把4改成2即可。
  11. 在例子3中,3>2, 而2也小于再前面的数字3,所以这次应该是2做更改。代码如下:
  12. """
  13. class Solution:
  14.     def checkPossibility(self, nums):
  15.         """
  16.        :type nums: List[int]
  17.        :rtype: bool
  18.        """
  19.         cnt = 1
  20.         for i in range(1, len(nums)):
  21.             if nums[i] < nums[i-1]:
  22.                 if cnt == 0:
  23.                     return False
  24.                
  25.                 if i == 1:                              # [4, 2, 3]
  26.                     nums[i-1] = nums[i]                    ^
  27.                                                                    
  28.                 elif i >= 2 and nums[i] >= nums[i-2]:   #[-1,4,2,3]
  29.                     nums[i-1] = nums[i]                      ^                    
  30.                                                                
  31.                 else:                                   #[2,3,3,2,4]
  32.                     nums[i] = nums[i-1]                         ^
  33.                    
  34.                 cnt -= 1
  35.                
  36.         return True
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement