分析
如果当前数比上一个数小(nums[i]<nums[i-1]),要修改其中一个的值,如果修改次数大于等于2,则直接false
看第i-2个数是否比当前数大,如果大,则把第i-1个数的值赋给当前数。
C++ 代码
class Solution {
public:
int co;
bool checkPossibility(vector<int>& nums) {
int n=nums.size();
if(n==1) return true;
for(int i=1;i<n;i++)
{
if(nums[i]<nums[i-1])
{
co++;
if(co>=2) return false; //修改次数大于等于2
if(i-2>=0 && nums[i-2]>nums[i])
nums[i]=nums[i-1];
}
}
return true;
}
};
本文探讨了一种C++代码实现的解决方案,解决了一个关于整数数组的问题,当遇到连续两个数递减时,仅允许有限次调整,确保修改次数不超过2。核心逻辑涉及检查前一个数和更远处的数,以决定是否进行值的更新。

被折叠的 条评论
为什么被折叠?



