Day 16: LeetCode 698. Partition to K Equal Sum Subsets

Day 16: LeetCode 698. Partition to K Equal Sum Subsets

Source

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

1.题意:

将阵列(nums)中的数字分组,分k组,每组加总值必须一样。

2.思路:

每组(subset)加总值为sum(nums)/k
条件:加某一element没有超过subset的sum则往下一element走(recursive)
有超过则不加入组里,往下组加看看

3.程序码:

class Solution(object):
    def canPartitionKSubsets(self, nums, k):
        sums = [0]*k
        subsum = sum(nums) / k
        nums.sort(reverse=True)
        l = len(nums)
        
        def walk(i):
            if i == l:
                return len(set(sums)) == 1
            for j in xrange(k):
                sums[j] += nums[i]
                if sums[j] <= subsum and walk(i+1):
                    return True
                sums[j] -= nums[i]
                if sums[j] == 0:
                    break
            return False
            
        '''加上会比较慢
        if sum(nums)%k!=0:
            return False
        '''
        return walk(0)

Level:Medium


<<:  [Day29] 倒数第二天~集大成!Next.js + React + Bootstrap + Reactstrap 十八般武艺(?)样样来,勇敢的上吧!

>>:  Day18_控制项(A10密码学A11实体及环境安全)

CSS微动画 - 手机版下拉选单,两种效果可以选

Q: 我要下拉选单,黑底跟选单一起推出来呢?还是淡出呢? A: 前几章的小技巧有掌握好,一切都好上...

Day16 简易资料库RealmSwift小实作3

继续昨天~ 再来回到系统所帮我们修复的两个func,刚刚说到第一个函数的作用,那我们这边将要回传几个...

[Day 18]所以我说那个酱汁呢(前端篇)

挑战目标: MockNative Camp 这次的挑战应该就止步於此了,在前端上我太弱小LA,没有事...

Day-23 Model 可以重复使用吗? 储存和读取 Model

总算,我们已经会建立自己独一无二的神经网路了~但,你有没有发现一个问题,我们的该不会每次要使用模型...

Day 23 | 录音权限

权限请求 当需要取得敏感资料或操作装置硬体设备时,需要在专案中设定相关权限,而系统会根据权限的重要性...