Skip to main content

2094.js

/** ------------------------------------------------------------------------------
*
* 2094. Finding 3-Digit Even Numbers
* Topics: Hash Table
* https://leetcode.com/problems/finding-3-digit-even-numbers/description/?envType=daily-question&envId=2025-05-12
*
------------------------------------------------------------------------------ */
/**
* @param {number[]} digits
* @return {number[]}
*/
function findEvenNumbers(digits) {
const count = Array.from({ length: 10 }).fill(0)
for (const digit of digits) {
count[digit]++
}
const result = []
for (let i = 1; i <= 9; i++) {
// hundreds place (no 0)
if (count[i] === 0) continue // skip if digit not available
count[i]-- // use one i
for (let j = 0; j <= 9; j++) {
// tens place (can be 0)
if (count[j] === 0) continue
count[j]--
for (let k = 0; k <= 9; k += 2) {
// ones place (even digits only)
if (count[k] === 0) continue
const num = i * 100 + j * 10 + k
result.push(num)
}
count[j]++ // backtrack tens place
}
count[i]++ // backtrack hundreds place
}
return result.sort((a, b) => a - b)
}

console.log(findEvenNumbers([2, 1, 3, 0]))