-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path0474-ones-and-zeroes.js
More file actions
24 lines (21 loc) · 939 Bytes
/
0474-ones-and-zeroes.js
File metadata and controls
24 lines (21 loc) · 939 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
* Ones And Zeroes
* Time Complexity: O(S * (L + m * n))
* Space Complexity: O(m * n)
*/
var findMaxForm = function (strs, m, n) {
const dpTable = Array.from({ length: m + 1 }, () => Array(n + 1).fill(0));
for (const inputStringItem of strs) {
const zeroCountForItem = (inputStringItem.match(/0/g) || []).length;
const oneCountForItem = inputStringItem.length - zeroCountForItem;
for (let currentZeroBudget = m; currentZeroBudget >= zeroCountForItem; currentZeroBudget--) {
for (let currentOneBudget = n; currentOneBudget >= oneCountForItem; currentOneBudget--) {
dpTable[currentZeroBudget][currentOneBudget] = Math.max(
dpTable[currentZeroBudget][currentOneBudget],
dpTable[currentZeroBudget - zeroCountForItem][currentOneBudget - oneCountForItem] + 1
);
}
}
}
return dpTable[m][n];
};