![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b841cf09c552cb2b2da8ba906c8ebccd.png)
int maxDiff(int num) {
string str1 = to_string(num);
int firstNum;
//查找第一个不是9的数字
for (int i = 0; i < str1.size(); i++)
if (str1[i] - '0' != 9) {
firstNum = str1[i] - '0';
break;
}
string str2 = to_string(num);
for (int i = 0; i < str2.size(); i++)
if (str2[i] - '0' == firstNum)
str2[i] = 9 + '0';
//字符串转数字
int a = 0;
for (int i = 0; i < str2.size(); i++)
a = a * 10 + str2[i] - '0';
string str3 = to_string(num);
int memoryNum;
int i = 0;
int modiNum;
for (; i < str3.size(); i++) {
if (i == 0) {
//检查第一个位置是否可变
//第一个位置最小为1
if (str3[i] - '0' != 1) {
memoryNum = str3[i] - '0';//记录当前数字,使得后面位置等于这个数的数字都进行转化
modiNum = 1;
str3[i++] = 1 + '0';//转化当前位置
break;
}
} else {
if (str3[i] - '0' != 0) {
//除第一个位置,其余位置最小为0
if (str3[i] - '0' == 1 && str3[0] - '0' == 1) continue;//排除全1,然后出现全0的情况
memoryNum = str3[i] - '0';//记录当前数字,使得后面位置等于这个数的数字都进行转化
modiNum = 0;
str3[i++] = 0 + '0';//转化当前位置
break;
}
}
}
for (; i < str3.size(); i++)
if (str3[i] - '0' == memoryNum)
str3[i] = modiNum + '0';
int b = 0;
for (int j = 0; j < str3.size(); j++)
b = b * 10 + str3[j] - '0';
return a - b;
}