记数字n的长度为M, 给定的可选数字中最大的为Mx,数字n为abcdef..., 首先可以取长度为M-1且每一位为Mx的数。接着从高到低枚举, 第一位能填1~a,我们要么填a,要么填小于a的最大值,因为如果选了小于a的可选最大值,那么后面的位置没有任何限制,所以此时答案为:长度为M,且首位为小于a的可选最大值,后面M-1位为Mx。如果可选数组没有a,直接结束;否则第一位选a,考虑第二位.....,如果我们顺利考虑到了第M位,那么前M - 1位一定是选了abcdef.... ,此时判断下小于最后一位的可选最大数是什么就行了,因为我们要保证选出来的数小.于n. 时间复杂度为log_10{n},空间复杂度为O(1). 思路不一定正确, 欢迎指正.
点赞 7

相关推荐

码农索隆:小同学,看看我查看图片
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
02-12 18:14
RT,这周五就是情人节了,前女友给我发了消息,我该不该回?
Yoswell:原则上来说让她滚,但是本着工作很累下班想吃瓜的心态,我觉得你可以回一下
点赞 评论 收藏
分享
牛客网
牛客企业服务