Max Difference You Can Get From Changing an Integer LeetCode solution in Java

1
class Solution {
2
public int maxDiff(int num) {
3
int[] arr = new int[String.valueOf(num).length()];
4
for (int i = arr.length - 1; i >= 0; i--) {
5
arr[i] = num % 10;
6
num /= 10;
7
}
8
return max(arr.clone()) - min(arr);
9
}
10

11
private int max(int[] arr) { // find max
12
for (int i = 0, t = -1; i < arr.length; i++) {
13
if (t == -1 && arr[i] != 9) {
14
t = arr[i];
15
}
16
if (t == arr[i]) {
17
arr[i] = 9;
18
}
19
}
20
return parse(arr);
21
}
22

23
private int min(int[] arr) { // find min
24
int re = arr[0] == 1 ? 0 : 1;
25
int t = arr[0] == 1 ? -1 : arr[0];
26
for (int i = 0; i < arr.length; i++) {
27
if (t == -1 && arr[i] != 0 && arr[i] != arr[0]) {
28
t = arr[i];
29
}
30
if (t == arr[i]) {
31
arr[i] = re;
32
}
33
}
34
return parse(arr);
35
}
36

37
private int parse(int[] arr) {
38
int ans = 0;
39
for (int i = 0; i < arr.length; i++) {
40
ans = 10 * ans + arr[i];
41
}
42
return ans;
43
}
44
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0