Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- 这道题还真把我难住了,看了Grandyang的帖子我才明白。用一下三个例子说明:
- 4,2,3
- ^
- -1,4,2,3
- ^
- 2,3,3,2,4
- ^
- 在例子1中,4>2, 4前面没有数字了,所以就把4改成2即可。
- 在例子2中,4>2, 2大于再前面的数字-1,所以还是把4改成2即可。
- 在例子3中,3>2, 而2也小于再前面的数字3,所以这次应该是2做更改。代码如下:
- """
- class Solution:
- def checkPossibility(self, nums):
- """
- :type nums: List[int]
- :rtype: bool
- """
- cnt = 1
- for i in range(1, len(nums)):
- if nums[i] < nums[i-1]:
- if cnt == 0:
- return False
- if i == 1: # [4, 2, 3]
- nums[i-1] = nums[i] ^
- elif i >= 2 and nums[i] >= nums[i-2]: #[-1,4,2,3]
- nums[i-1] = nums[i] ^
- else: #[2,3,3,2,4]
- nums[i] = nums[i-1] ^
- cnt -= 1
- return True
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement