diff --git a/problems/0474.一和零.md b/problems/0474.一和零.md index a098b9ef..d60faa98 100644 --- a/problems/0474.一和零.md +++ b/problems/0474.一和零.md @@ -190,16 +190,18 @@ class Solution { ``` Python: -```python +```python3 class Solution: def findMaxForm(self, strs: List[str], m: int, n: int) -> int: - dp = [[0] * (n + 1) for _ in range(m + 1)] + dp = [[0] * (n + 1) for _ in range(m + 1)] # 默认初始化0 + # 遍历物品 for str in strs: - oneNum = str.count('1') - zeroNum = str.count('0') - for i in range(m, zeroNum - 1, -1): - for j in range(n, oneNum - 1, -1): - dp[i][j] = max(dp[i][j], dp[i - zeroNum][j - oneNum] + 1) + ones = str.count('1') + zeros = str.count('0') + # 遍历背包容量且从后向前遍历! + for i in range(m, zeros - 1, -1): + for j in range(n, ones - 1, -1): + dp[i][j] = max(dp[i][j], dp[i - zeros][j - ones] + 1) return dp[m][n] ```