删数字那个题可以单调栈来做。 栈里面维护的是从小到大。 从最高位开始枚举,如果当前数字大于栈顶元素,说明前面的数字较小,删掉后会更大,就打个标记全都删掉。 如果删的时候大于m了,就停止删除就好了,因为栈内是从小到大的,删的都是最小的数字。 如果循环跑完了删的数还不够m个,那么栈内是从小到大的,直接从栈里取,打标记删够m个就OK。