Advertisement
vladimirVenkov

698. Partition to K Equal Sum Subsets climberig

Jun 18th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.70 KB | None | 0 0
  1. public boolean canPartitionKSubsets(int[] a, int k) {
  2.         int sum = IntStream.of(a).sum();
  3.         return k != 0 && sum % k == 0 && canPartition(0, a, new boolean[a.length], k, 0, sum / k);
  4.     }
  5.  
  6.     boolean canPartition(int start, int[] a, boolean[] seen, int k, int sum, int target) {
  7.         if (k == 1) return true;
  8.         if (sum == target)
  9.             return canPartition(0, a, seen, k - 1, 0, target);
  10.         for (int i = start; i < a.length; i++)
  11.             if (!seen[i]) {
  12.                 seen[i] = true;
  13.                 if (canPartition(i + 1, a, seen, k, sum + a[i], target))
  14.                     return true;
  15.                 seen[i] = false;
  16.             }
  17.         return false;
  18.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement