手写代码:给定一个正整数 n,找出小于 n 的最大整数,且该整数的每一位数字都不能大于给定的一个数字限制(例如每位数字最大为 d),或者该整数必须由给定的数字集合构成。请说明你的解法并写出代码。
考察说明
考察算法设计、边界处理和编码实现能力,尤其是构造小于给定数的最大合规数
回答思路
- 正确理解题意,明确数字限制或允许的数字集合
- 能设计出从高位贪心尝试并回退的算法
- 覆盖 n 的位数、首位数、递减回退等边界情况
- 代码实现正确,处理边界情况(如退位补最大值)
考察算法设计、边界处理和编码实现能力,尤其是构造小于给定数的最大合规数