关于算法题我的思路是: 本题首先有两个要求: 1.结果数需要 ≤n;2.结果数尽量的大。 有一个关键的结论:数位更高的一位只要变小了,那么无论低位如何变化,整个数字都是变小的。 因此大概的思路:设置一个 bool flag,用于标识某个数位之前的更高位有没有变小。然后 从高到低遍历 n 的每个数位,对于每个数位: 1. 如果 flag==true,表示当前数位更高位已经变小过了,那么直接取 A 数组中最大的元素即可。 2. 如果 flag==false,表示当前数位更高位没有变小,那么当前位置就选一个小于 n 对应位置的数字的元素来保证结果数字 ≤n,为了满足 让结果数字尽量大,选择的数字是 ≤n 的最大的一个元素。 大佬觉得有没有什么问题
点赞 评论

相关推荐

彧未sr:查看图片
投递牧原集团等公司10个岗位
点赞 评论 收藏
分享
07-23 11:37
延安大学 C++
绷不住了,晚上十点发拒信,是还在加班吗这样一想挂了好像也没什么不好
码农索隆:这个都是真人发嘛,会用到机器人定时发嘛
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务