力扣 2970
暴力求解,双指针不会(我真菜)
需要满足三个条件
若 nums[l] 左侧有元素,并且这些元素满足严格递增;
若 nums[r] 右侧有元素,并且这些元素满足严格递增;
若 nums[l] 左侧有元素并且 nums[r] 右侧有元素,并且 nums[l]<nums[r+1]。
总之就是左右都递增并且右边最小值大于左边最大值
bool isIncreasing(int *nums,int l,int r,int numsSize){
int i;
for(i=1;i<numsSize;i++){
if(i>=l && i<=r+1){ //这里r+1是要从r右边两个位置开始比较因为是i和i-1比较
continue;
}
if(nums[i]<=nums[i-1]){ //和i-1比较所以i从1开始
return false;
}
}
if(l-1 >=0 && r+1<numsSize && nums[r+1]<=nums[l-1]){
return false;
}
return true;
}
int incremovableSubarrayCount(int* nums, int numsSize) {
int i,j,n=0;
for(i=0;i<numsSize;i++){
for(j=i;j<numsSize;j++){
if(isIncreasing(nums,i,j,numsSize)){
n++;
}
}
}
return n;
}