1
- # Time: O(n), n is 10^3
1
+ # Time: O(1) ~ O( n), n is 10^3
2
2
# Space: O(1)
3
3
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)
4
34
import collections
5
35
6
36
7
- class Solution (object ):
37
+ class Solution2 (object ):
8
38
def findEvenNumbers (self , digits ):
9
39
"""
10
40
:type digits: List[int]
@@ -31,7 +61,7 @@ def __init__(self, val=None, left=None, right=None):
31
61
self .right = right
32
62
33
63
34
- class Solution2 (object ):
64
+ class Solution3 (object ):
35
65
def findEvenNumbers (self , digits ):
36
66
"""
37
67
:type digits: List[int]
@@ -78,7 +108,7 @@ def backtracking(curr, dummy, result):
78
108
import collections
79
109
80
110
81
- class Solution3 (object ):
111
+ class Solution4 (object ):
82
112
def findEvenNumbers (self , digits ):
83
113
"""
84
114
:type digits: List[int]
0 commit comments