当前位置: 首页 > article >正文

Leetcode Hot100 第30题 416.分割等和子集

在这里插入图片描述

class Solution {
public:
    bool canPartition(vector<int>& nums) {
        int sum=0;
        for(int num:nums){
            sum+=num;
        }
        if(sum%2==1) return false;
        int bag_size = sum/2;
        // return dfs(nums,nums.size()-1,bag_size);//递归做法
        vector<vector<bool>> dp(nums.size()+1,vector<bool>(bag_size+1));
        dp[0][0]=true;
        for(int i=1;i<=nums.size();i++){
            for(int j=0;j<=bag_size;j++){
                if(j-nums[i-1]<0) dp[i][j] = dp[i-1][j];
                else dp[i][j] = dp[i-1][j]||dp[i-1][j-nums[i-1]];
            }
        }
        return dp[nums.size()][bag_size];
    }

    bool dfs(vector<int>& nums, int i, int target){
        if(i<0) return target==0? true: false;
        if(target==0) return true;
        if(target<0) return false;
        return dfs(nums,i-1,target-nums[i])||dfs(nums,i-1,target);
    }
};

http://www.kler.cn/a/548803.html

相关文章:

  • InnoDB如何解决幻读?深入解析MySQL的并发控制机制
  • dify新版,chatflow对deepseek的适配情况
  • 72.git指南(简单)
  • HTTP
  • cmake Qt Mingw windows构建
  • 物联网 网络安全 概述
  • 杜绝遛狗不牵绳,AI技术助力智慧城市宠物管理
  • 介绍两本学习智谱大模型的入门图书
  • 大数据实训室解决方案(2025年最新版)
  • 小米14 机型工程固件预览 刷写以及更改参数步骤 nv.img的写入
  • 【Bluedroid】 BLE连接源码分析(一)
  • LeetCode每日精进:203.移除链表元素
  • 开发中需要使用到volatile的情况
  • 【大模型系列】入门常识备忘
  • IT行业方向细分,如何做到专家水平——7.边缘计算与物联网(IoT)
  • 算法刷题--哈希表--字母异位词和两个数组的交集
  • 从短片到长片:王琦携《Mountain》续作迈向新高度
  • Python进制转换
  • 智能设备监控:AI 与 Python 助力设备管理的未来
  • Substance Painter快捷键