zoukankan      html  css  js  c++  java
  • 698. Partition to K Equal Sum Subsets

    Given an integer array nums and an integer k, return true if it is possible to divide this array into k non-empty subsets whose sums are all equal.

    Example 1:

    Input: nums = [4,3,2,3,5,2,1], k = 4
    Output: true
    Explanation: It's possible to divide it into 4 subsets (5), (1, 4), (2,3), (2,3) with equal sums.
    

    Example 2:

    Input: nums = [1,2,3,4], k = 3
    Output: false
    

    Constraints:

    • 1 <= k <= nums.length <= 16
    • 1 <= nums[i] <= 104
    • The frequency of each element is in the range [1, 4].
    class Solution {
        public boolean canPartitionKSubsets(int[] nums, int k) {
            if(nums.length < k) return false;
            int sum = 0;
            for(int i : nums) sum += i;
            if(sum % k != 0) return false;
            boolean[] visited = new boolean[nums.length];
            return dfs(visited, nums, 0, 0, sum / k, k);
        }
        
        public boolean dfs(boolean[] visited, int[] nums, int start, int cur, int target, int k) {
            if(k == 0) return true;
            
            if(cur == target) return dfs(visited, nums, 0, 0, target, k - 1);
            for(int i = start; i < nums.length; i++) {
                if(visited[i] || cur + nums[i] > target) continue;
                visited[i] = true;
                if(dfs(visited, nums, i + 1, cur + nums[i], target, k)) return true;
                visited[i] = false;
            }
            return false;
        }
    }
  • 相关阅读:
    实验三
    第四次实验
    作业
    第二次实验
    <转>JVM调优
    SQL Server的聚集索引和非聚集索引
    去除DataTable里面重复的数据
    sql server 与 Excel 导入导出
    C#学习笔记 委托和事件
    好多特效
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/14888010.html
Copyright © 2011-2022 走看看