LeetCode:698. 划分为k个相等的子集

class Solution {

public:

bool canPartitionKSubsets(vector<int>& nums, int k) {

if (k > nums.size())

return false;

int sum = 0;

for (int v : nums) {

sum += v;

}

// 如果数字不能平分

if (sum % k != 0)

return false;

// 记录每个桶中球的数量和

vector<int> bucket(k, 0);

// 每个桶中球的数量,k是分的组数

int target = sum / k;

// 索引值为0,桶中球的数量,桶中的目标数量

return backtrack(nums, 0, bucket, target);

}

bool backtrack(vector<int>& nums, int index, vector<int>& bucket,

int target) {

if (index == nums.size()) {

// 检查是否符合要求

for (int i = 0; i < bucket.size(); i++) {

if (bucketi != target) {

return false;

}

}

return true;

}

//穷举numsindex选择的桶

for(int i=0;i<bucket.size();i++){

if(bucketi+numsindex>target){

continue;

}

bucketi+=numsindex;

if(backtrack(nums, index+1,bucket , target)){

return true;

}

bucketi-=numsindex;

}

return false;

}

};

会超时

相关推荐
醉城夜风~7 小时前
Java详解经典算法题:接雨水(三种实现方案+原理剖析)
java·开发语言·算法
ysa0510307 小时前
【板子】ST表
c++·笔记·算法·板子
CHHH_HHH8 小时前
【C++11】深入解析C++可变参数模板
开发语言·c++·算法·stl·c++11
hurrycry_小亦8 小时前
洛谷题目:P1215 [USACO1.4] 母亲的牛奶 Mother‘s Milk 题解(本题简)
算法
十五年专注C++开发8 小时前
fatal error C1189: #error: WinSock.h has already been included 的解决方案
c++·socket·boost
KJ_BioMed9 小时前
从PDB到高亲和力分子:De novo生成式计算化学Pipeline剖析
算法·生物医药·生物科研·科研干货·化合物设计
一个王同学10 小时前
从零到一 | CV转多模态大模型 | week17 | LLM 推理优化 & vLLM 详解
人工智能·深度学习·算法·机器学习·计算机视觉·vllm
旖-旎11 小时前
《LeetCode 53 最大子数组和 || LeetCode 918 环形子数组的最大和》
c++·算法·leetcode·动态规划
变量未定义~11 小时前
单调栈+倍增思想 皇家守卫【算法赛】、单调队列 附近最小
算法
QN1幻化引擎11 小时前
给 AI 做一次「意识体检」——基于 QN1 幻化引擎的灵鉴意识识别框架与 DalinX V5 实测
大数据·数据结构·人工智能·算法·架构