在Python中找出数字不超过n的数字,其中所有数字都不会降序
假设我们有一个数字n,我们必须找到最大的不大于n的数字,其中所有数字都不会降序。
因此,如果输入为n = 221,则输出将为199。
要解决此问题,我们将遵循以下步骤:
- digits:具有n中所有数字的列表
- bound :空
- 对于i的范围由digits长度减1到0,执行以下操作
- 如果digits[i] < digits[i – 1],则
- bound := i
- digits[i – 1] := digits[i – 1] – 1
- 如果bound不为空,则
- 对于i的范围是从绑定到digits大小,执行以下操作
- digits[i] := 9
- 如果digits[i] < digits[i – 1],则
- 加入digits中的每个数字以组成一个数字并返回它
让我们查看以下实现,以更好地理解: