题解
此题看似很简单,实则需要考虑的分支条件还是挺复杂的。
考察这么一个序列 a b c
若 b > c
- 若
b的索引为 0,则可令b为 MIN_INT,这样b才不会对后面产生影响 - 若
b的索引不为 0- 若
a<=c,因为a<b,所以只需将b设为a即可 - 若
a>c,则需要将c设为b即可代码
var checkPossibility = function(nums) {let n = 0for (let i = 0; i < nums.length - 1; i++) {if (nums[i] > nums[i+1]) {if (i === 0) {nums[i] = -1e5n++} else {if (nums[i-1] > nums[i+1]) {nums[i+1] = nums[i]} else {nums[i] = nums[i-1]}n++}if (n > 1) return false}}return true};
- 若
