题目如下:

解题思路:对于这种判断是否的题目,首先看看动态规划能不能解决。本题可以看成是从nums中任选i个元素,判断其和是否为sum(nums)/2,很显然从nums中任选i个元素的和的取值范围是[0,sum(nums)],这里就可以用一个dp数组来保存nums中任选i个元素的和的取值的和,记dp[v] = 1表示可以从nums中任选i个元素使得其和等于v,dp[v] = 0 则表示不可以。那么nums中任意元素nums[i]来说,只要找出dp[0,sum(nums[0:i-1])] 中所有为1的元素,记为j,可以有dp[nums[i] + j] = 1 if dp[j] = 1。

代码如下:

class Solution(object):def canPartition(self, nums):""":type nums: List[int]:rtype: bool"""if sum(nums) % 2 == 1:return Falsenums.sort()dp = [0] * (sum(nums)+1)dp[nums[0]] = 1total = nums[0]for i in range(1,len(nums)):for j in range(total+1):if dp[j] == 1:dp[j + nums[i]] = 1total += nums[i]#print dpreturn dp[sum(nums)/2] == 1

转载于:https://www.cnblogs.com/seyjs/p/9578067.html

【leetcode】416. Partition Equal Subset Sum相关推荐

  1. leetcode 416. Partition Equal Subset Sum | 416. 分割等和子集(Java)

    题目 https://leetcode.com/problems/partition-equal-subset-sum/ 题解 乍一看是背包问题,但不同的是,本题要求结果等于某值,背包要求结果小于某值 ...

  2. 【LeetCode】#39组合总和(Combination Sum)

    [LeetCode]#39组合总和(Combination Sum) 加粗样式 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数 ...

  3. 【leetcode】86. Partition List

    题目如下: Given a linked list and a value x, partition it such that all nodes less than x come before no ...

  4. LeetCode Partition Equal Subset Sum(动态规划)

    问题:给出一个数组,问是否可以分成两个子集,其和相等 思路:首先要求数组和是偶数,然后用动态规划来求. 用dp(i,j)表示第i步时和为j是否可行,则有dp(i,j)= dp(i-1,j) || dp ...

  5. leetcode416. Partition Equal Subset Sum

    题目要求 Given a non-empty array containing only positive integers, find if the array can be partitioned ...

  6. 【leetcode】931. Minimum Falling Path Sum

    题目如下: Given a square array of integers A, we want the minimum sum of a falling path through A. A fal ...

  7. 【Leetcode】416. 分割等和子集

    题目链接:分割等和子集 题目描述:给你一个 只包含正整数 的 非空 数组 nums .请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 思路:将数组分割成两个等和的子集. 那么: ...

  8. 【Leetcode】416 分割等和子集

    类似0-1背包问题,目的是判断是否存在子数组的和为sum/2. 可以直接返回false的特殊case: 只有1个数 数组和为奇数 最大的数大于数组和的一半 递归数组D[i, j]表示是否A[0:i]是 ...

  9. 【leetcode】486. Predict the Winner

    题目如下: Given an array of scores that are non-negative integers. Player 1 picks one of the numbers fro ...

最新文章

  1. C#字符串与享元(Flyweight)模式
  2. 对于模板渲染的页面,如何针对渲染出来的对象添加事件
  3. CentOS 6.5安全加固及性能优化
  4. 企业级工作流解决方案(八)--微服务Tcp消息传输模型之服务端处理
  5. 智能指针auto_ptr介绍
  6. RabbitMQ声明队列参数作用详解
  7. Hystrix Health Indicator及Metrics Stream支持
  8. 微服务实现事务一致性实例
  9. linux系统运行pbs出现ntf,Linux系统启动故障修复
  10. ArcGIS API For Javascript :如何动态生成 token 加载权限分配的地图服务?
  11. Android sdk 搭建
  12. 需求调研计划_Mysteel调研:需求持续放量工业线材下游调研
  13. 魅族16T官网开启预约:骁龙855+4400mAh大电池
  14. MAGENTO DEBUG
  15. firebug的调试,console
  16. Mybatis 延迟加载策略
  17. mysqldump怎么用 mysqldump没反应 mysqldump语法错误 mysqldump备份 mysql恢复 source命令 采用Navicat备份与mysqldump备份的区别...
  18. 道路照明之电缆线路 - 设计笔记
  19. 怎么批量修改文件后缀名?
  20. 网络安全—DDoS攻防

热门文章

  1. SQL PLUS编辑器的一些常用设置
  2. cisco2950 查看端口流量
  3. nginx配置后重启无效与重启失败
  4. OEA框架 2.9 Pre-Alpha 源码公布
  5. [LintCode] Coins in a Line I Coins in a Line II
  6. 对docker隔离性的理解
  7. can't get master address from zookeeper /新旧数据不一致
  8. 浅谈 js 数字格式类型
  9. Android对弹出输入法界面影响app界面布局
  10. [转载] 民兵葛二蛋——第21集