Backpack II Template

https://www.lintcode.com/problem/backpack-ii/description

背包问题以系列的模板

class Solution:
    """
    @param m: An integer m denotes the size of a backpack
    @param A: Given n items with size A[i]
    @param V: Given n items with value V[i]
    @return: The maximum value
    """
    def backPackII(self, m, A, V):
        # write your code here
        n = len(A)
        dp=[(m+1)*[0] for _ in range(n+1)]
        for i in range(1,n+1):
            for j in range(1,m+1):
                dp[i][j] = dp[i-1][j]
                if j >= A[i-1]:
                    dp[i][j] = max(dp[i][j],dp[i-1][j-A[i-1]] + V[i-1])
        
        res = 0
        for j in range(1,m+1):
            res = max(res,dp[n][j])
        return res

Last updated

Was this helpful?