15.Backpack VI

http://www.lintcode.com/zh-cn/problem/backpack-vi/

class Solution {
public:
    /**
     * @param nums an integer array and all positive numbers, no duplicates
     * @param target an integer
     * @return an integer
     */
    int backPackVI(vector<int>& nums, int target) {
        // Write your code here
        int n = nums.size();
        
        sort(nums.begin(), nums.end());
        vector<int> f(target + 1, 0);
        f[0] = 1;
        
        for (int i = 1; i <= target; i++) {
            for (int j = 0; j < n; j++) {
                if (i - nums[j] >= 0) {
                    f[i] = f[i] + f[i - nums[j]];
                } else {
                    break;
                }
            }
        }
        
        return f[target];
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【少年游365之西安篇-Alisa】下班回来,楼道里飘散着各种美食的味道,就忍不住流口水,想起小时候校门口的美食街...
    Vina眼里存山河阅读 1,638评论 0 0
  • 漫步海滩,随意的牵手,便是一辈子的温柔! ——题记 和李先生...
    miss甄阅读 3,203评论 0 4
  • 她们在玩,而我却小心翼翼的努力着,有时候不知道这个努力到底有没有结果,虽然知道功不唐捐,可是仍旧有点害怕。
    莫子瞳阅读 1,020评论 0 0