Skip to content

Commit c23e04d

Browse files
authored
Update finding-3-digit-even-numbers.py
1 parent 2b61d6b commit c23e04d

File tree

1 file changed

+34
-4
lines changed

1 file changed

+34
-4
lines changed

Python/finding-3-digit-even-numbers.py

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,40 @@
1-
# Time: O(n), n is 10^3
1+
# Time: O(1) ~ O(n), n is 10^3
22
# Space: O(1)
33

4+
class Solution(object):
5+
def findEvenNumbers(self, digits):
6+
"""
7+
:type digits: List[int]
8+
:rtype: List[int]
9+
"""
10+
k = 3
11+
def backtracking(curr, cnt, result):
12+
if len(curr) == k:
13+
result.append(reduce(lambda x, y: x*10+y, curr))
14+
return
15+
for i, c in enumerate(cnt):
16+
if c == 0 or (not curr and i == 0) or (len(curr) == k-1 and i%2 != 0):
17+
continue
18+
cnt[i] -= 1
19+
curr.append(i)
20+
backtracking(curr, cnt, result)
21+
curr.pop()
22+
cnt[i] += 1
23+
24+
cnt = [0]*10
25+
for d in digits:
26+
cnt[d] += 1
27+
result = []
28+
backtracking([], cnt, result)
29+
return result
30+
31+
32+
# Time: O(n), n is 10^3
33+
# Space: O(1)
434
import collections
535

636

7-
class Solution(object):
37+
class Solution2(object):
838
def findEvenNumbers(self, digits):
939
"""
1040
:type digits: List[int]
@@ -31,7 +61,7 @@ def __init__(self, val=None, left=None, right=None):
3161
self.right = right
3262

3363

34-
class Solution2(object):
64+
class Solution3(object):
3565
def findEvenNumbers(self, digits):
3666
"""
3767
:type digits: List[int]
@@ -78,7 +108,7 @@ def backtracking(curr, dummy, result):
78108
import collections
79109

80110

81-
class Solution3(object):
111+
class Solution4(object):
82112
def findEvenNumbers(self, digits):
83113
"""
84114
:type digits: List[int]

0 commit comments

Comments
 (0)