FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
LeetCode-Solutions/Python/moving-stones-until-consecutive.py at master · spotpan/LeetCode-Solutions · GitHub
spotpan
LeetCode-Solutions
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
LeetCode-Solutions
/
Python
/
moving-stones-until-consecutive.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
37 lines (34 loc) · 1.03 KB
Breadcrumbs
LeetCode-Solutions
/
Python
/
moving-stones-until-consecutive.py
Copy path
File metadata and controls
37 lines (34 loc) · 1.03 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
# Time: O(1)
# Space: O(1)
class
Solution
(
object
):
def
numMovesStones
(
self
,
a
,
b
,
c
):
"""
:type a: int
:type b: int
:type c: int
:rtype: List[int]
"""
s
=
[
a
,
b
,
c
]
s
.
sort
()
if
s
[
0
]
+
1
==
s
[
1
]
and
s
[
1
]
+
1
==
s
[
2
]:
return
[
0
,
0
]
return
[
1
if
s
[
0
]
+
2
>=
s
[
1
]
or
s
[
1
]
+
2
>=
s
[
2
]
else
2
,
s
[
2
]
-
s
[
0
]
-
2
]
# Time: O(1)
# Space: O(1)
class
Solution2
(
object
):
def
numMovesStones
(
self
,
a
,
b
,
c
):
"""
:type a: int
:type b: int
:type c: int
:rtype: List[int]
"""
stones
=
[
a
,
b
,
c
]
stones
.
sort
()
left
,
min_moves
=
0
,
float
(
"inf"
)
max_moves
=
(
stones
[
-
1
]
-
stones
[
0
])
-
(
len
(
stones
)
-
1
)
for
right
in
xrange
(
len
(
stones
)):
while
stones
[
right
]
-
stones
[
left
]
+
1
>
len
(
stones
):
# find window size <= len(stones)
left
+=
1
min_moves
=
min
(
min_moves
,
len
(
stones
)
-
(
right
-
left
+
1
))
# move stones not in this window
return
[
min_moves
,
max_moves
]
Back
|
FazBrowse Home
|
New Git URL