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

牟平网站制作郑州模板建站代理

牟平网站制作,郑州模板建站代理,苏州网站建设套餐,延吉制作网站题意 给一个数组,要求把数组里的元素分成k个子集,满足每个子集中数的总和是相等的。问是否能分成k个子集 题目链接 https://leetcode.com/problems/partition-to-k-equal-sum-subsets/description/ 思考 想象你有k个桶,然后你有n个小球&…

题意

给一个数组,要求把数组里的元素分成k个子集,满足每个子集中数的总和是相等的。问是否能分成k个子集

题目链接

https://leetcode.com/problems/partition-to-k-equal-sum-subsets/description/

思考

想象你有k个桶,然后你有n个小球,你要做的是把这n个小球放进k个桶里,问能不能放成
最暴力的办法就是遍历所有的球,看看第一个桶能不能放,第二个桶能不能放。。。以此类推

题解

这k个子集每个子集的元素和假设为a。用dfs遍历,从第一个数字开始判断他应该放在哪个子集中。当当前子集的值小于等于需要的值的时候我们可以放,并且回溯。当最后一个数字被放入并且每个桶的元素和都能够满足为a时,那么就说明能够分成k份。
剪枝:1. 可以从大到小排序,这样可以先放大的数字,子集会更早达到元素和a
2. 当有两个子集的元素和相同时,我们只需要遍历一个子集就好
3. 当有子集的元素和已经满足为a,可以跳过

class Solution {
public:bool canPartitionKSubsets(vector<int>& nums, int k) {int sum = 0;vector<int> b(k, 0);for(int i = 0; i < nums.size(); i++) {sum += nums[i];}if(sum % k != 0) {return false;} int a = sum / k;sort(nums.begin(), nums.end(), greater<int>());return dfs(0, nums, b, a);}bool dfs(int u, vector<int>& nums, vector<int> b, int a) {if( u == nums.size()) {for(int i = 0; i < b.size(); i++) {if (b[i] != a) {return false;}}return true;}for(int i = 0; i < b.size(); i++) {if(i && b[i] == b[i-1]) {continue;}if(b[i] == a) {continue;}if(b[i] + nums[u] <= a) {b[i] += nums[u];if(dfs(u+1, nums, b, a)) {return true;}b[i] -= nums[u];}}return false;}
};

时间复杂度: O ( k n ) O(k^n) O(kn)指数级

空间复杂度: O ( k ) O(k) O(k)

http://www.yidumall.com/news/15499.html

相关文章:

  • 济南网站建设抖音平台优化课程设置
  • 网站开发语言什么好快照关键词优化
  • 创做网站上海关键词排名优化怎样
  • 做推广优化的网站有哪些江苏搜索引擎优化公司
  • 互联网做网站的话术今日足球比赛预测推荐分析
  • wordpress文档管理关键词优化排名软件案例
  • 定制网站开发公司哪家好?点击查看友情链接交换群
  • 国外做兼职网站设计成都sem优化
  • 建筑工程公司需要什么资质无锡优化网站排名
  • b2b网站大全至勤新东方托福班价目表
  • 火蝠网店代运营可靠吗seo优化技术
  • 有什么展厅设计做的好的网站宁德seo优化
  • 网站主机免费电商培训机构推荐
  • 国家网站建设谷歌搜索引擎大全
  • 有名做网站公司营销技巧
  • 网站建设公司兴田德润实惠帮收款的接单平台
  • 枣强县住房和城乡建设局网站收录入口在线提交
  • 成都百度推广公司电话seo站外优化平台
  • 成都广告公司简介网站怎样优化关键词好
  • 做网站导出用什么色彩模式合肥优化营商环境
  • 福田网站建设seo信科百度点击软件找名风
  • 建设网站地图免费设计模板网站
  • 做响应式的网站有哪些潍坊新闻头条最新消息
  • 海东营销网站建设公司西安排名seo公司
  • 知道一个网站怎么知道是谁做的百度优化产品全网营销推广
  • 劳务公司网站建设外贸seo是什么意思
  • 画画在线青岛seo关键词排名
  • 在韶关做网站怎么做一个免费的网站
  • 怎么样自己做网站seo代运营
  • 网站建设公司 待遇百度如何推广网站