File tree Expand file tree Collapse file tree 2 files changed +66
-0
lines changed
1529-max-difference-you-can-get-from-changing-an-integer Expand file tree Collapse file tree 2 files changed +66
-0
lines changed Original file line number Diff line number Diff line change
1
+ <p >You are given an integer <code >num</code >. You will apply the following steps to <code >num</code > <strong >two</strong > separate times:</p >
2
+
3
+ <ul >
4
+ <li>Pick a digit <code>x (0 <= x <= 9)</code>.</li>
5
+ <li>Pick another digit <code>y (0 <= y <= 9)</code>. Note <code>y</code> can be equal to <code>x</code>.</li>
6
+ <li>Replace all the occurrences of <code>x</code> in the decimal representation of <code>num</code> by <code>y</code>.</li>
7
+ </ul >
8
+
9
+ <p >Let <code >a</code > and <code >b</code > be the two results from applying the operation to <code >num</code > <em >independently</em >.</p >
10
+
11
+ <p >Return <em >the max difference</em > between <code >a</code > and <code >b</code >.</p >
12
+
13
+ <p >Note that neither <code >a</code > nor <code >b</code > may have any leading zeros, and <strong >must not</strong > be 0.</p >
14
+
15
+ <p >  ; </p >
16
+ <p ><strong class =" example " >Example 1:</strong ></p >
17
+
18
+ <pre >
19
+ <strong >Input:</strong > num = 555
20
+ <strong >Output:</strong > 888
21
+ <strong >Explanation:</strong > The first time pick x = 5 and y = 9 and store the new integer in a.
22
+ The second time pick x = 5 and y = 1 and store the new integer in b.
23
+ We have now a = 999 and b = 111 and max difference = 888
24
+ </pre >
25
+
26
+ <p ><strong class =" example " >Example 2:</strong ></p >
27
+
28
+ <pre >
29
+ <strong >Input:</strong > num = 9
30
+ <strong >Output:</strong > 8
31
+ <strong >Explanation:</strong > The first time pick x = 9 and y = 9 and store the new integer in a.
32
+ The second time pick x = 9 and y = 1 and store the new integer in b.
33
+ We have now a = 9 and b = 1 and max difference = 8
34
+ </pre >
35
+
36
+ <p >  ; </p >
37
+ <p ><strong >Constraints:</strong ></p >
38
+
39
+ <ul >
40
+ <li><code>1 <= num <= 10<sup>8</sup></code></li>
41
+ </ul >
Original file line number Diff line number Diff line change
1
+ # Approach 2: Greedy
2
+
3
+ # Time: O(log(num))
4
+ # Space: O(log(n))
5
+
6
+ class Solution :
7
+ def maxDiff (self , num : int ) -> int :
8
+ min_num , max_num = str (num ), str (num )
9
+
10
+ for digit in max_num :
11
+ if digit != '9' :
12
+ max_num = max_num .replace (digit , '9' )
13
+ break
14
+
15
+ for i , digit in enumerate (min_num ):
16
+ if i == 0 :
17
+ if digit != '1' :
18
+ min_num = min_num .replace (digit , '1' )
19
+ break
20
+ else :
21
+ if digit != '0' and digit != min_num [0 ]:
22
+ min_num = min_num .replace (digit , '0' )
23
+ break
24
+
25
+ return int (max_num ) - int (min_num )
You can’t perform that action at this time.
0 commit comments