- 当时我还以为直接模拟的话10^8的数据会超时呢,所以就没想着却用暴力,看来还是想多了,直接模拟的话思路就很清晰了,只要两个0到10的嵌套循环把每个数字都换一遍找最大最小值就可。
代码如下:
class Solution {
public:
int maxDiff(int num) {
string s = to_string(num);
int maxi = INT_MIN, mini = INT_MAX;
for (int i = 0; i < 10; ++i){
for (int j = 0; j < 10; ++j){
string t = s;
if (j==0&&t[0]==i) continue;
for (char& c: t)
if (c == i + '0')
c = j + '0';
int dd = stoi(t);
if (dd == 0) continue;
maxi = max(maxi, dd);
mini = min(mini, dd);
}
}
return maxi - mini;
}
};