0
点赞
收藏
分享

微信扫一扫

【c#】分割等和子集

纽二 2022-03-21 阅读 53
动态规划

public class Solution {

    public bool CanPartition(int[] nums) {

        int sum=0;

        for(int i=0;i<nums.Length;i++){

            sum+=nums[i];//计算数组当中的所以数的和

        }

        if(sum%2==1)

         return false;

        int target=sum/2;//定义背包的容量为数组当中数相加为一半

        int[] dp = new int[target+1];

        for(int i=0;i<nums.Length;i++){

            for(int j=target;j>=nums[i];j--)

            dp[j]=Math.Max(dp[j],dp[j-nums[i]]+nums[i]);//背包问题当中一维数组的推导公式

        

        }

        

        if(dp[target]==target) return true;

        return false;

    }

}

举报

相关推荐

0 条评论