File tree 3 files changed +67
-0
lines changed
3 files changed +67
-0
lines changed Original file line number Diff line number Diff line change 160
160
| 849 | Maximize Distance to Closest Person | Medium | O(N) | O(1) | Array | | |
161
161
| 851 | Loud and Rich | Medium | O(N^2) | O(N^2) | DFS | | |
162
162
| 853 | Car Fleet | Medium | O(NlogN) | O(N) | Sort | | |
163
+ | 858 | Mirror Reflection | Medium | O(logN) | O(1) | Math | | |
163
164
| 859 | Buddy Strings | Easy | O(N) | O(1) | String | | |
164
165
| 875 | Koko Eating Bananas | Medium | O(NlogN) | O(1) | Binary Search | | |
165
166
| 886 | Possible Bipartition | Medium | O(N + E) | O(N + E) | Depth First Search | Good problem | |
Original file line number Diff line number Diff line change
1
+ #
2
+ # @lc app=leetcode id=858 lang=python3
3
+ #
4
+ # [858] Mirror Reflection
5
+ #
6
+
7
+ # @lc code=start
8
+ # TAGS: Math
9
+ # REVIEWME: Math
10
+ import fractions
11
+ class Solution :
12
+ # 24 ms, 91.58%. Time: O(logN). Space: O(1)
13
+ def mirrorReflection (self , p : int , q : int ) -> int :
14
+ if q == 0 : return 0
15
+ val = 0
16
+ while val == 0 or val % p :
17
+ val += q
18
+
19
+ if (val // p ) % 2 == 0 : return 0
20
+ if (val // q ) % 2 : return 1
21
+ return 2
22
+
23
+ # 24 ms, 91.58%. using fraction. Simplified version of above.
24
+ def mirrorReflection (self , p : int , q : int ) -> int :
25
+ num = fractions .Fraction (q , p )
26
+ val = num .numerator * num .denominator
27
+ if (val // num .denominator ) % 2 == 0 : return 0
28
+ if (val // num .numerator ) % 2 : return 1
29
+ return 2
30
+
31
+ # 24 ms, 91.58%. Use gcd. Simplified version of above.
32
+ def mirrorReflection (self , p : int , q : int ) -> int :
33
+ gcd = math .gcd (p , q )
34
+ p //= gcd
35
+ q //= gcd
36
+ if q % 2 == 0 : return 0
37
+ if p % 2 : return 1
38
+ return 2
39
+ # @lc code=end
40
+
Original file line number Diff line number Diff line change
1
+ 2
2
+ 1
3
+ 3
4
+ 1
5
+ 4
6
+ 1
7
+ 4
8
+ 3
9
+ 7
10
+ 3
11
+ 3
12
+ 2
13
+ 6
14
+ 3
15
+ 9
16
+ 1
17
+ 13
18
+ 11
19
+ 1
20
+ 0
21
+ 4
22
+ 4
23
+ 4
24
+ 2
25
+ 6
26
+ 2
You can’t perform that action at this time.
0 commit comments