2023华为OD面试手撕真题【移除K位数字,求最小数】

给你一个以字符串表示的非负整数 num 和一个整数 k ,移除这个数中的 k 位数字,使得剩下的数字最小。请你以字符串形式返回这个最小的数字。

        

示例 1 :

输入:num = "1432219", k = 3
输出:"1219"
解释:移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219 。

leetcode原题啦,看来也是一个比较懒的面试官。。。402. 移掉 K 位数字 - 力扣(LeetCode)

说实话,leetcode上标记是meidum中等题,但是我看来这是个比较难的题目,非常考察逻辑思维能力和对于常见算法的应用。

举个例子方便理解。《官方的写法我觉的写的很不错,还有视频示例,可以直接去看》

 所以最后的策略就是,从左到右遍历,删除当前数字左侧的比当前数字大的数字。为了找到这个数字,就需要使用单调栈这个算法。

 

猜你喜欢

转载自blog.csdn.net/misayaaaaa/article/details/131611475