for(int i=1;i<=n;i++) {//要删掉的数字个数
for(int i=0;i<len;i++) {//从头到尾扫一遍
if(a[i]>a[i+1]) {//找到了高位大于低位的数
for(int j=i;j<len;j++)//后面的数前移一个下标
a[j]=a[j+1];
len--;//长度减小
break;//继续找下一个,或许可以减少时间
}
}
}
对于题解这段有一个疑问:
如果给的数是单调递增的 后面的数一直比前面的大 每次都应该删除最后一个数
删倒数第一个数的时候 因为a[l]=0 所以有a[l-1]>a[l] 可以删掉 数的总长度l减一
但是删倒数第二个数的时候a[l-1]>a[l]就不满足了
删不掉了 这怎么解释呢