//优化后只遍历一次nums数组 classSolution { public: boolcheckPossibility(vector<int> &nums){ int n = nums.size(), 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; } };