题目描述
解题思路:想着最多修改一次,就遍历修改,遇见不符合条件的有两种情况,1、修改前数2、修改后数。我无法判断修改条件,最后还是看了题解。
class Solution {
public:
bool checkPossibility(vector<int>& nums) {
int cnt = 0;
for(int i = 0; i < nums.size()-1; ++i){
if(nums[i]>nums[i+1]){
cnt++;
if(cnt == 2) return false;
if(i > 0 && nums[i+1] < nums[i-1]){//修改条件
nums[i+1] = nums[i];
}
}
}
return true;
}
};

该博客探讨了一道编程题目,涉及C++语言。主要内容是检查一个整数数组是否能在最多修改一个元素后变得非递减。解题策略是遍历数组,当发现不满足条件的元素时,进行修改并记录修改次数。如果修改次数超过一次,则返回false,否则返回true。博客中提到作者最初遇到理解题目要求的困扰,但通过分析找到了解决方案。

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



