3
bool checkPossibility(vector<int> &nums) {4
if (nums.size() <= 2) return true;5
// creating a diff array(size=n-1) to store differences bw 2 consecutive7
vector<int> diff(nums.size() - 1);10
for (int i = 0; i < nums.size() - 1; i++) {11
diff[i] = nums[i + 1] - nums[i];12
diff[i] < 0 ? neg++ : 0; // no of negative differences15
if (neg > 1) return false;17
for (int i = 0; i < diff.size(); i++) {18
if (diff[i] < 0 and i != diff.size() - 1) {21
continue; // if the first diff is neg, the next is obviosly>=0 as22
// neg<=1, and this mountain can be resolved;26
if ((nums[i - 1] <= nums[i + 1]) || (diff[i + 1]) >= abs(diff[i]))27
continue; // the major mountain cases, lemme know below if want28
// explaination of these