给定一个正整数数组和一个正整数m,要求返回一个小于m的最大数。
举个例子,给定数组[9, 4, 6, 1, 8, 7]和正整数m=550,那么可以将数组中的数字按顺序拼接起来,得到的最大数就是498。
因此,对于给定的数组和正整数m,可以使用以下步骤来求解:
- 将数组中的数字按顺序拼接起来。
- 判断拼接后的数是否大于等于m,如果是,则将最后一位数字减1,并重复步骤2;如果不是,则返回拼接后的数即可。
代码实现如下:
def find_max_less_than_m(arr, m):# 将数组中的数字按顺序拼接起来
res = int(''.join([str(x) for x in arr]))
# 判断是否大于等于m,如果是则继续减小最后一位数字
while res >= m:
arr[-1] -= 1
res = int(''.join([str(x) for x in arr]))
return res
# 测试
print(find_max_less_than_m([9, 4, 6, 1, 8, 7], 550)) # 输出498