网站网站如何做的充值,wordpress百度xml,北京 网站 优化,wordpress is_category()给你一个整数 num 。你可以对它进行如下步骤恰好 两次 #xff1a;
选择一个数字 x (0 x 9). 选择另一个数字 y (0 y 9) 。数字 y 可以等于 x 。 将 num 中所有出现 x 的数位都用 y 替换。 得到的新的整数 不能 有前导 0 #xff0c;得到的新整数也 不能…给你一个整数 num 。你可以对它进行如下步骤恰好 两次
选择一个数字 x (0 x 9). 选择另一个数字 y (0 y 9) 。数字 y 可以等于 x 。 将 num 中所有出现 x 的数位都用 y 替换。 得到的新的整数 不能 有前导 0 得到的新整数也 不能 是 0 。 令两次对 num 的操作得到的结果分别为 a 和 b 。
请你返回 a 和 b 的 最大差值 。
示例 1
输入num 555 输出888 解释第一次选择 x 5 且 y 9 并把得到的新数字保存在 a 中。 第二次选择 x 5 且 y 1 并把得到的新数字保存在 b 中。 现在我们有 a 999 和 b 111 最大差值为 888
解题思路
因为高位对数字大小的影响最大所以优先将高位的数字变大或减小就能得出最大值最小值。
代码
class Solution {public int maxDiff(int num) {String temInteger.toString(num),tem2Integer.toString(num);for(int i0;item.length();i)//求出最大化数字if(tem.charAt(i)9) continue;else {tem tem.replace(tem.charAt(i),9);break;}for(int i0;item.length();i)//求出最小化数字if(tem2.charAt(i)0||tem2.charAt(i)1tem2.charAt(0)1) continue;
//开头为1时后面不能替换1否则出现前导0else {if(i0)//开头最小只能换成1tem2 tem2.replace(tem2.charAt(i),1);elsetem2tem2.replace(tem2.charAt(i),0);break;}int bInteger.parseInt(tem2)0?num:Integer.parseInt(tem2);//不能为0如果为0变回numreturn Integer.parseInt(tem)-b;}
}