小蓝有很多数字卡片,每张卡片上都是数字0到9。%0D%0A%0D%0A小蓝准备用这些卡片来拼一些数,他想从1开始拼出正整数,每拼一个, 就保存起来,%0D%0A%0D%0A卡片就不能用来拼其它数了。%0D%0A%0D%0A小蓝想知道自己能从1拼到多少。%0D%0A%0D%0A例如,当小蓝有30张卡片,其中0到9各3张,则小蓝可以拼出1到10,%0D%0A%0D%0A但是拼11时卡片1巳经只有一张了,不够拼出11。%0D%0A%0D%0A现在小蓝手里有0到9的卡片各2021张,共20210张,请问小蓝可以从1 拼到多少?
时间: 2023-06-12 19:04:22 浏览: 41
这道题可以使用贪心算法求解。
首先考虑1位数的情况,需要用掉1张数字卡片,可以拼出1~9这9个数字。
接着考虑2位数的情况,需要用掉2张数字卡片。如果卡片中有两张1,那么可以拼出10~19这10个数字;否则,只能拼出11~19这9个数字。然后再看是否有两张2,可以拼出20~29这10个数字,否则只能拼出21~29这9个数字。以此类推,直到不能拼出更多的数字为止。
对于n位数的情况,需要用掉n张数字卡片。如果卡片中有足够的每个数字,那么可以拼出所有的n位数;否则,只能拼出前面一部分数字。
根据上述贪心策略,可以得到从1拼到的最大数字为:
1. 1位数:9
2. 2位数:98
3. 3位数:987
4. 4位数:9876
5. 5位数:98765
6. 6位数:987654
7. 7位数:9876543
8. 8位数:98765432
9. 9位数:987654321
因此,小蓝可以从1拼到987654321。