Max Difference You Can Get From Changing an Integer LeetCode solution in C++
1class Solution {2public:3int power10(int n) {4int total = 1;5for (int i = 0; i < n; i++) {6total *= 10;7}8return total;9}1011int maxDiff(int num) {12vector<int> v;13vector<int> w;14int n = num;15while (n > 0) {16v.push_back(n % 10);17w.push_back(n % 10);18n /= 10;19}2021// Finding maximum number22int d = v.size();23int j = d - 1;24for (int i = d - 1; i >= 0; i--) {25if (v[i] != 9) {26j = i;27break;28}29}3031for (int i = 0; i <= j; i++) {32if (v[i] == v[j]) {33v[i] = 9;34}35}36long long int res = 0;37for (int i = d - 1; i >= 0; i--) {38res += (v[i] * power10(i));39}4041// Finding minimum number42int t = w.size();43if (w[t - 1] == 1) {44int l = -1;45for (int i = t - 2; i >= 0; i--) {46if (w[i] != 0 && w[i] != 1) {47l = i;48break;49}50}51for (int i = 0; i <= l; i++) {52if (w[i] == w[l]) {53w[i] = 0;54}55}56} else {57for (int i = 0; i < t; i++) {58if (w[i] == w[t - 1]) {59w[i] = 1;60}61}62}63long long int res2 = 0;64for (int i = t - 1; i >= 0; i--) {65res2 += (power10(i) * w[i]);66}67return res - res2;68}69};