-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy path1323.maximum-69-number.cpp
More file actions
58 lines (55 loc) · 1.29 KB
/
1323.maximum-69-number.cpp
File metadata and controls
58 lines (55 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// Tag: Math, Greedy
// Time: O(1)
// Space: O(1)
// Ref: -
// Note: -
// Video: https://youtu.be/bYnhgH-bYz4
// You are given a positive integer num consisting only of digits 6 and 9.
// Return the maximum number you can get by changing at most one digit (6 becomes 9, and 9 becomes 6).
//
// Example 1:
//
// Input: num = 9669
// Output: 9969
// Explanation:
// Changing the first digit results in 6669.
// Changing the second digit results in 9969.
// Changing the third digit results in 9699.
// Changing the fourth digit results in 9666.
// The maximum number is 9969.
//
// Example 2:
//
// Input: num = 9996
// Output: 9999
// Explanation: Changing the last digit 6 to 9 results in the maximum number.
//
// Example 3:
//
// Input: num = 9999
// Output: 9999
// Explanation: It is better not to apply any change.
//
//
// Constraints:
//
// 1 <= num <= 104
// num consists of only 6 and 9 digits.
//
//
class Solution {
public:
int maximum69Number (int num) {
int tmp = num;
int pos = -1;
int i = 0;
while (tmp > 0) {
if (tmp % 10 == 6) {
pos = i;
}
tmp = tmp / 10;
i += 1;
}
return pos == -1 ? num : num + 3 * pow(10, pos);
}
};