Skip to content

Commit 71fda8b

Browse files
authored
Create 2094-finding-3-digit-even-numbers.js
1 parent b8d2f4e commit 71fda8b

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

2094-finding-3-digit-even-numbers.js

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/**
2+
* @param {number[]} digits
3+
* @return {number[]}
4+
*/
5+
const findEvenNumbers = function(digits) {
6+
const set = new Set(), visited = new Set()
7+
helper(0, [])
8+
const res = Array.from(set)
9+
res.sort((a, b) => a - b)
10+
return res
11+
12+
function helper(idx, cur) {
13+
if(cur.length === 3) {
14+
set.add(+cur.join(''))
15+
return
16+
}
17+
for(let i = 0; i < digits.length; i++) {
18+
if(visited.has(i)) continue
19+
const d = digits[i]
20+
if(d === 0) {
21+
if(cur.length === 0) continue
22+
else {
23+
cur.push(d)
24+
visited.add(i)
25+
helper(i + 1, cur)
26+
visited.delete(i)
27+
cur.pop()
28+
}
29+
} else {
30+
const isEven = d % 2 === 0
31+
if(cur.length === 3 - 1) {
32+
if(isEven) {
33+
cur.push(d)
34+
visited.add(i)
35+
helper(i + 1, cur)
36+
visited.delete(i)
37+
cur.pop()
38+
} else continue
39+
} else {
40+
cur.push(d)
41+
visited.add(i)
42+
helper(i + 1, cur)
43+
visited.delete(i)
44+
cur.pop()
45+
}
46+
}
47+
}
48+
}
49+
};

0 commit comments

Comments
 (0)