核心是分别构造最大数 A 与最小数 B,答案为 A−B。
构造 A:从高位到低位找到第一个不为 9 的数字 d,把所有的 d 改为 9。若所有位都是 9,则 A=num。 直觉:越高位变大收益越大;把该位及其同值位都改到上限 9 最优。
构造 B(允许前导零):找到 num 中最小的非零数字 m,把所有 m 改为 0。若 num 只含 0,则 B=num。 直觉:越高位变小收益越大;把最小的非零数降到下限 0,能尽早在高位出现 0 并且还能多处同时变小。
给你一个整数num,将其中的一个数字(0-9)全部替换为另一个数字,然后将替换后的两个值作差,返回最大的差值。
输入一个整数
输出替换后的最大差值
输入
11891
输出
99009
说明
为了得到最大值,我们好数字1替换成数字9,得到99899。
为了得到最小值,我们将数字1替换成数字0,得到890,两个数字的差值为99000