leetcode 416. 分割等和子集

动态规划

python 复制代码
class Solution:
    def canPartition(self, nums: List[int]) -> bool:
        if sum(nums)%2!=0:
            return False
        
        n = len(nums)
        target = int(sum(nums)/2)
        INF = float('-inf')
        dp = [INF for _ in range(target+1)]
        dp[0] = 1
        for i in range(n):

            if(int(nums[i])<=target):
                for j in range(target-int(nums[i]),-1,-1):
                    if dp[j] >0:
                        dp[j+int(nums[i])] = 1
        
        if dp[target]<0:
            return False
        else:
            return True
相关推荐
smj2302_7968265211 小时前
解决leetcode第3934题最短唯一子数组
数据结构·python·算法·leetcode
NashSKY11 小时前
EPnP 算法详解
算法·矩阵分解·多视图几何·射影几何
小O的算法实验室11 小时前
2026年SEVC,自适应模因算法+复杂约束条件下多无人机协同任务分配,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
绪风75011 小时前
Airtest_Ide
职场和发展
iiiiyu11 小时前
面向对象和集合编程题
java·开发语言·前端·数据结构·算法·编程语言
xiaoxiaoxiaolll11 小时前
Light首次发表:动量空间穆勒矩阵偏振测量,破解纳米手性结构表征难题
人工智能·算法
变量未定义~11 小时前
最长回文子串
数据结构·算法
один but you11 小时前
Hash表
缓存·面试·职场和发展
BirdenT11 小时前
20260518紫题训练
c++·算法
玛卡巴卡ldf12 小时前
【LeetCode 手撕算法】(多维动态规划)不同路径、最小路径和、最长回文子串、最长公共子序列、编辑距离
java·数据结构·算法·leetcode·动态规划·力扣