1529. Max Difference You Can Get From Changing An Integer¶
Difficulty: Medium
LeetCode Problem View on GitHub
1529. Max Difference You Can Get From Changing an Integer
Medium
You are given an integer num. You will apply the following steps to num two separate times:
- Pick a digit
x (0 <= x <= 9). - Pick another digit
y (0 <= y <= 9). Noteycan be equal tox. - Replace all the occurrences of
xin the decimal representation ofnumbyy.
Let a and b be the two results from applying the operation to num independently.
Return the max difference between a and b.
Note that neither a nor b may have any leading zeros, and must not be 0.
Example 1:
Input: num = 555 Output: 888 Explanation: The first time pick x = 5 and y = 9 and store the new integer in a. The second time pick x = 5 and y = 1 and store the new integer in b. We have now a = 999 and b = 111 and max difference = 888
Example 2:
Input: num = 9 Output: 8 Explanation: The first time pick x = 9 and y = 9 and store the new integer in a. The second time pick x = 9 and y = 1 and store the new integer in b. We have now a = 9 and b = 1 and max difference = 8
Constraints:
1 <= num <= 108
Solution¶
class Solution {
public int maxDiff(int num) {
String s = Integer.toString(num);
int maxi = 0, mini = 0;
int maxi_ind = -1, mini_ind = -1;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) != '9') {
maxi_ind = i;
break;
}
}
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (maxi_ind == -1)
maxi = maxi * 10 + (ch - '0');
else if (ch == s.charAt(maxi_ind))
maxi = maxi * 10 + 9;
else
maxi = maxi * 10 + ch - '0';
}
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) != '1' && s.charAt(i) != '0') {
mini_ind = i;
break;
}
}
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (mini_ind == -1)
mini = mini * 10 + (ch - '0');
else if (ch == s.charAt(mini_ind) && mini_ind == 0)
mini = mini * 10 + 1;
else if (ch == s.charAt(mini_ind) && mini_ind != 0)
mini = mini * 10 + 0;
else
mini = mini * 10 + ch - '0';
}
return maxi - mini;
}
}
Complexity Analysis¶
- Time Complexity:
O(?) - Space Complexity:
O(?)
Approach¶
Detailed explanation of the approach will be added here