123456789101112131415161718 |
- func checkPossibility(nums []int) bool {
- n := len(nums)
- if n < 3 {
- return true
- }
- cnt := 0
- for i := 1; i < n && cnt <= 1; i++ {
- if nums[i] < nums[i-1] {
- cnt++ // Greedy
- if i < 2 || nums[i-2] <= nums[i] {
- nums[i-1] = nums[i]
- } else {
- nums[i] = nums[i-1]
- }
- }
- }
- return cnt <= 1
- }
|