classSolution{publicbooleancheckPossibility(int[] nums){int n = nums.length;for(int i =0; i < n -1;++i){int x = nums[i], y = nums[i +1];if(x > y){
nums[i]= y;if(isSorted(nums)){returntrue;}
nums[i]= x;// 复原
nums[i +1]= x;returnisSorted(nums);}}returntrue;}publicbooleanisSorted(int[] nums){int n = nums.length;for(int i =1; i < n;++i){if(nums[i -1]> nums[i]){returnfalse;}}returntrue;}}
JS代码
varcheckPossibility=function(nums){const n = nums.length;for(let i =0; i < n -1;++i){const x = nums[i], y = nums[i +1];if(x > y){
nums[i]= y;if(isSorted(nums)){returntrue;}
nums[i]= x;// 复原
nums[i +1]= x;returnisSorted(nums);}}returntrue;};constisSorted=(nums)=>{const n = nums.length;for(let i =1; i < n;++i){if(nums[i -1]> nums[i]){returnfalse;}}returntrue;}
classSolution{publicbooleancheckPossibility(int[] nums){int n = nums.length, cnt =0;for(int i =0; i < n -1;++i){int x = nums[i], y = nums[i +1];if(x > y){
cnt++;if(cnt >1){returnfalse;}if(i >0&& y < nums[i -1]){
nums[i +1]= x;}}}returntrue;}}