2月7号每日一题,今天解决,原来也是想以数组解决,然后参考了官方题解
一、题目
题目:665. 非递减数列
难度:简单
地址:https://leetcode-cn.com/problems/non-decreasing-array/
使用语言:Java
二、代码
class Solution {
public boolean checkPossibility(int[] nums) {
// 判定 根据连续子串判定 然后看中断的位置有几处
for(int i = 0;i<nums.length-1;i++){
int x = nums[i];
int y = nums[i+1];
// 此处要考虑是将左边的复制到右边来,还是反过来,所以需要进行两次尝试
if(x > y){
nums[i] = y;
if(isSorted(nums)){
return true;
}
nums[i] = x;
nums[i+1] = x;
return isSorted(nums);
}
}
return true;
}
// 是否递减
public boolean isSorted(int[] nums) {
for (int i = 1; i < nums.length; ++i) {
if (nums[i - 1] > nums[i]) {
return false;
}
}
return true;
}
}