算法分析与设计第十一周:416. Partition Equal Subset Sum
来源:互联网 发布:基本编程 编辑:程序博客网 时间:2024/06/11 20:56
思路:
1.对数组进行排序并取得数组的总和
2.从大到小对数组进行筛选
3.只要有一种可行方案即返回True
class Solution(object): def canPartition(self, nums): if len(nums) <= 1: return False sum1 = sum(nums) nums.sort() #若数组中最大值大于数组总和值的一半,则直接返回False if sum1 % 2 == 1 or nums[-1] > (sum1 >> 1): return False def rec(nums, size, val): if val == 0: return True yes = False #遍历搜索各种可能的组合 for i in range(size - 1, -1, -1): if nums[i] <= val: yes |= rec(nums[0:i] + nums[i + 1:], size - 1, val - nums[i]) if yes: return True return yes #因为要将数组分为等值的两部分,所以传入数组总和的一半值 return rec(nums, len(nums), sum1 >> 1)
不加中文注释时的代码效率:
0 0
- 算法分析与设计第十一周:416. Partition Equal Subset Sum
- 算法分析与设计课程14——416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- 416. Partition Equal Subset Sum
- Python基本语法
- Java中等待线程执行完毕
- LeetCode : Third Maximum Number
- Java Web开发7___通过数据库连接池连接MySQL 数据库
- window安装 Dubbo 注册中心(Zookeeper-3.4.6)
- 算法分析与设计第十一周:416. Partition Equal Subset Sum
- 如何解决复制来的js以及css等文件中文乱码问题
- linux套接字编程笔记(二)--简单的TCP套接字应用程序
- 安装系统(win7篇)新手专用
- 成为JavaGC专家(1)—深入浅出Java垃圾回收机制
- 读书笔记 —《JavaScript权威指南》
- Java实现Rsa非对称加密
- 道
- Sublime Text3 快捷键