首页 > 其他分享 >416. 分割等和子集c

416. 分割等和子集c

时间:2024-03-12 15:01:02浏览次数:18  
标签:分割 return nums int max sum 416 子集 dp

22号就要复试了,专业课,英语都还没搞,我的吗,先每天刷10道旧题在刷新题把。

int max(int i,int j){
    if(i>j) return i;
    return j;
}

bool canPartition(int* nums, int numsSize) {
    int sum=0;
    for(int i=0;i<numsSize;i++){
        sum+=nums[i];
    }
    if(sum%2!=0) return false;
    int size=sum/2;
    int** dp=(int**)malloc(sizeof(int*)*numsSize);
    for(int i=0;i<numsSize;i++) dp[i]=(int*)malloc(sizeof(int)*(size+1));
    for(int i=0;i<numsSize;i++) dp[i][0]=0;
    for(int i=nums[0];i<=size;i++) dp[0][i]=nums[0];
    for(int i=1;i<numsSize;i++){
        for(int j=1;j<=size;j++){
            if(nums[i]>j){
                dp[i][j]=dp[i-1][j];
            }else{
                dp[i][j]=max(dp[i-1][j],dp[i-1][j-nums[i]]+nums[i]);
            }
            if(dp[i][j]==sum/2) return true;
        }
    }    
    return false;
}

结果:

标签:分割,return,nums,int,max,sum,416,子集,dp
From: https://www.cnblogs.com/llllmz/p/18068328

相关文章

  • 代码随想录算法训练营第四十一天 | 416. 分割等和子集,● 01背包问题,你该了解这些! 滚
     46.携带研究材料(第六期模拟笔试)时间限制:5.000S空间限制:128MB题目描述小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等,它们各自占据......
  • arcgis用一个图层分割另一个图层
    现有用线图层A、面图层B,需使用A图层分割B图层,操作步骤如下:1、打开Editor编镇工具条,单击StartEditing开始编辑。2、鼠标选中线对象,或者全选线图层(右键单机线图层A依次执行“选择/选择全部”)。 3、打开Advancedediting工具条。 4、选择splitpolygons,点确定后,自动按......
  • python json格式转url参数&分割, url参数转json格式
    前言全局说明一、json格式转url参数&分割>>>fromurllib.parseimporturlencode>>>params={'user':'admin','pwd':'123456'}>>>print(urlencode(params))二、url参数转json格式>>>importj......
  • 3416:【例72.1】 二进制转化为十进制
    3416:【例72.1】二进制转化为十进制时间限制:1000ms内存限制:65536KB提交数:544通过数:318【题目描述】把一个二进制数转化为十进制数。【输入】第一行一个正整数n(1≤n≤30),表示二进制数的长度。第二行一个二进制数。【输出】输出一个整数,表示对应......
  • 代码随想录算法训练营第四十一天|01背包问题, 01背包问题—— 滚动数组,分割等和子集
    01背包问题,你该了解这些! 题目链接:46.携带研究材料(第六期模拟笔试)(kamacoder.com)思路:第一次遇到背包问题,好好记住吧。代码随想录(programmercarl.com)#include<bits/stdc++.h>usingnamespacestd;intmain(){intm,n;cin>>m>>n;vector<int>z(m);vec......
  • 78. 子集c
    leetcode官方解法实在是太绝了!!二刷的时候一定用上!/***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSizesarraymustbemalloced,assumecallercall......
  • 【力扣】子集II(回溯法)(排序函数的一种隐藏用法?)
    题目描述可以套回溯模版的题,但是在写的过程中发现,如果数组中有多个相同元素分散存在的话,就会有一些子集无法得到像这里的1,4,4,如果对数组从左到右枚举的话是无论如何都得不到的。对这样的数组使用排序函数后,造成的效果就是相同的元素都堆在了一起,这样就能正确地得到所有子集......
  • P5416 笔记
    前置知识:线段树分治。题意给定\(n\)个节点的树,每个节点有一个二元组集合\(S_i\)。这个集合有一个限制:\(S_i\)一定是\(S_{fa_i}\)中删除一个二元组或者加一个二元组,并且加进来的二元组互不相同。现在有\(m\)个询问,每个询问给出\(k,h\)表示查询\(\min\limits_{(x,c......
  • 131. 分割回文串c
    这题真的坑爹啊,不明白为什么会产生万大小的数据啊。/***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSizesarraymustbemalloced,assumecallerca......
  • 【力扣】复原IP地址(回溯法)(分割问题)
    问题描述在这个题中,因为结果的数据类型为vector<string>所以直接在s中添加分割点比较方便,先看一下代码:classSolution{private:vector<string>result;//记录结果//startIndex:搜索的起始位置,pointNum:添加逗点的数量voidbacktracking(string&s,intst......