@ 代码随想录算法训练营第7周(C语言)|Day42(动态规划)

@ 代码随想录算法训练营第7周(C语言)|Day42(动态规划)

Day42、动态规划(包含题目 416. 分割等和子集 )

416. 分割等和子集

题目描述

给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。

注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200

题目解答

bool canPartition(int* nums, int numsSize){
   
    int target;
    int sum;
    sum=0;
    for(int i=0;i<numsSize;i++){
   
        sum+=nums[i];
    }
    if(sum%2!=0){
   
        return false;
    }
    target=sum/2;

    int dp[target+1];
    for(int i=0;i<target+1;i++){
   
        dp[i]=0;
    }
    for(int i=0;i<numsSize;i++){
   
        for(int j=target;j>=nums[i];j--){
   
            dp[j]=dp[j]<(dp[j-nums[i]]+nums[i])?(dp[j-nums[i]]+nums[i]):dp[j];
        }
    }
    return dp[target]==target;
}
// #include<stdio.h>
// #include<string.h>
// #define MAX(a,b) (((a)>(b))?(a):(b))
// #define ARR_SIZE(arr) ((sizeof((arr)))/sizeof((arr)[0]))
// #define BAG_WEIGHT 4
// void test_back_pack(int *weights,int weightSize,int*values,int valueSize,int bagWeight){
   
//     int dp[bagWeight+1];
//     memset(dp,0,sizeof(int)*(bagWeight+1));
//     for(int i=0;i<weightSize;i++){
   
//         for( int j=bagWeight;j>=weights[i];--j){
   
//             dp[j]=MAX(dp[j],dp[j-weights[i]]+values[i]);
//         }
//     }
//     printf("%d\n",dp[bagWeight]);
// }
// int main(int argc,char**argv){
   
//     int weights[]={1,3.4};
//     int values[]={15,20,30};
//     test_back_pack(weights,ARR_SIZE(weights),values,ARR_SIZE(values),BAG_WEIGHT);
//     return 0;
// }

题目总结

0-1背包问题。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-15 18:34:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-15 18:34:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-15 18:34:02       82 阅读
  4. Python语言-面向对象

    2024-02-15 18:34:02       91 阅读

热门阅读

  1. XML学习

    XML学习

    2024-02-15 18:34:02      50 阅读
  2. coding持续集成构建环境自定义node版本

    2024-02-15 18:34:02       55 阅读
  3. STM32 SPI

    STM32 SPI

    2024-02-15 18:34:02      41 阅读
  4. P1008 [NOIP1998 普及组] 三连击

    2024-02-15 18:34:02       51 阅读
  5. 蔚来面试解答

    2024-02-15 18:34:02       54 阅读
  6. 【在 Ubuntu 上配置 Nginx 作为 Web 服务器】

    2024-02-15 18:34:02       57 阅读
  7. Momentum2

    Momentum2

    2024-02-15 18:34:02      41 阅读
  8. C++重新入门-基本输入输出

    2024-02-15 18:34:02       47 阅读
  9. 【开源讲解】

    2024-02-15 18:34:02       50 阅读
  10. win+X无反应,开始菜单右击无反应

    2024-02-15 18:34:02       55 阅读