dynamic programming
from right bottom corner to top left
class Solution(object):
def findMaxForm(self, strs, m, n):
"""
:type strs: List[str]
:type m: int
:type n: int
:rtype: int
"""
dp=[[0 for _ in range(n+1)] for _ in range(m+1)]
for string in strs:
num_zeros=string.count('0')
num_ones=string.count('1')
for i in reversed(xrange(num_zeros,m+1)):
for j in reversed(xrange(num_ones,n+1)):
dp[i][j]=max(dp[i][j],dp[i-num_zeros][j-num_ones]+1)
return dp[m][n]
474. Ones and Zeroes
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- n the computer world, use restricted resource you have to...