BackhardDynamic ProgrammingCredGoogle

Hyper-Dimensional Grid Optimizer 3 Solution

Problem Statement

You are tasked with optimizing a high-dimensional grid system where each cell is represented by a bitmask of active features. Given an array grid of length N, where each element is an integer representing a bitmask of size K (i.e., values in range [0, 2^K - 1]), determine the maximum sum of values obtainable by selecting a subsequence of cells such that no two selected cells share any common active feature (i.e., their bitwise AND is 0).

Formally, find the maximum sum of a subset of indices i_1, i_2, ..., i_m such that for all a != b, grid[i_a] & grid[i_b] == 0. The goal is to compute this maximum sum efficiently using Bitmask Dynamic Programming.

Input: An array grid of integers, where each integer represents a bitmask of active features. Output: A single integer representing the maximum sum of values from a valid subsequence of non-overlapping feature masks.

Example 1
Input
grid = [1, 2, 3, 4, 5]
Output
7

Explanation: The bitmasks are: 1 (001), 2 (010), 3 (011), 4 (100), 5 (101). We need to select a subset where no two masks share a common bit. The optimal selection is {1, 2, 4} with sum 1+2+4=7. Alternatively, {3, 4} gives 3+4=7. Both are valid, and 7 is the maximum.

Example 2
Input
grid = [7, 8, 15, 16]
Output
24

Explanation: The bitmasks are: 7 (0111), 8 (1000), 15 (1111), 16 (10000). The optimal selection is {7, 8, 16} with sum 7+8+16=31. However, 7 and 8 are disjoint, and 16 is disjoint from both. Thus, the maximum sum is 31.

Example 3
Input
grid = [1, 1, 2, 2, 4]
Output
7

Explanation: The bitmasks are: 1 (001), 1 (001), 2 (010), 2 (010), 4 (100). We can select one instance of each distinct mask: {1, 2, 4} with sum 1+2+4=7. Selecting duplicates does not increase the sum since they share the same bits.

Constraints

  • 1 <= grid.length <= 10^5
  • 0 <= grid[i] < 2^20
  • The sum of grid[i] over all i does not exceed 10^9
  • Time limit: 2 seconds
  • Space limit: 256 MB
Live Compiler1 Free Run Available
Loading Editor...
Test Cases & Output
Click "Run" to test your 1 free compile trial!

🚀 Practice this problem

Run code, get AI hints & track streak

Sign Up Free

Hyper-Dimensional Grid Optimizer 3 — Problem Statement & Solution Guide

Dynamic ProgrammingHardBitmask DP
TimeO(N·2^K)
|
SpaceO(2^K)

Problem Description

You are tasked with optimizing a high-dimensional grid system where each cell is represented by a bitmask of active features. Given an array grid of length N, where each element is an integer representing a bitmask of size K (i.e., values in range [0, 2^K - 1]), determine the maximum sum of values obtainable by selecting a subsequence of cells such that no two selected cells share any common active feature (i.e., their bitwise AND is 0).

Formally, find the maximum sum of a subset of indices i_1, i_2, ..., i_m such that for all a != b, grid[i_a] & grid[i_b] == 0. The goal is to compute this maximum sum efficiently using Bitmask Dynamic Programming.

Input: An array grid of integers, where each integer represents a bitmask of active features.

Output: A single integer representing the maximum sum of values from a valid subsequence of non-overlapping feature masks.

DSA Pattern Breakdown

DSA Pattern Breakdown

"Hyper-Dimensional Grid Optimizer 3"

hard

WHY DOES IT MATTER?

Bitmask DP transforms exponential combinatorial constraints into polynomial‑time state transitions.

OPTIMIZATION CHALLENGE

The key is reducing the exponential search over subsets to O(N·2^K) by reusing previously computed masks.

REAL-WORLD CONNECTION

It mirrors resource‑allocation in CPUs where each core can run only non‑conflicting instruction sets.

Iterate elements outermost and update dp in reverse (or use a copy) to avoid using the same element twice in a transition.

COMPLEXITY AT A GLANCE

⏱ Time:O(N·2^K)
💾 Space:O(2^K)

Core Theory — Why This Approach?

The problem reduces to a maximum‑weight independent set on a hyper‑graph where each vertex is a grid cell and edges connect cells whose bitmasks share a set bit. A naive O(2^N) enumeration fails because N can be up to 10^5, making exhaustive search impossible. The optimal paradigm is DP over bitmask states: dp[mask] stores the best sum achievable using exactly the feature set represented by mask. For each cell with mask m and value v, we transition from any state s where (s & m) == 0 to s|m, updating dp[s|m] = max(dp[s|m], dp[s] + v). This leverages the fact that K ≤ 20‑22, so the state space 2^K is tractable while iterating over N elements remains linear, yielding an O(N·2^K) solution.

Interview Questions on This Problem

Q1Why is a simple longest‑increasing‑subsequence style DP insufficient for this problem?

Because the constraint is on overlapping bits, not on order or value monotonicity. The state must capture which bits are already used, which LIS DP does not.

Q2What is the significance of the condition (s & m) == 0 in the transition?

It guarantees that the new cell's active features do not conflict with those already selected. Without this check the solution could double‑count a feature, violating the problem constraint.

Q3How does the choice of K (bitmask size) affect the algorithm’s feasibility?

The DP’s memory and time are O(2^K); if K exceeds ~22 the state space explodes. Therefore the algorithm is only practical when K is small relative to N.

Examples

Example 1

Input

grid = [1, 2, 3, 4, 5]

Output

7

Explanation: The bitmasks are: 1 (001), 2 (010), 3 (011), 4 (100), 5 (101). We need to select a subset where no two masks share a common bit. The optimal selection is {1, 2, 4} with sum 1+2+4=7. Alternatively, {3, 4} gives 3+4=7. Both are valid, and 7 is the maximum.

Example 2

Input

grid = [7, 8, 15, 16]

Output

24

Explanation: The bitmasks are: 7 (0111), 8 (1000), 15 (1111), 16 (10000). The optimal selection is {7, 8, 16} with sum 7+8+16=31. However, 7 and 8 are disjoint, and 16 is disjoint from both. Thus, the maximum sum is 31.

Example 3

Input

grid = [1, 1, 2, 2, 4]

Output

7

Explanation: The bitmasks are: 1 (001), 1 (001), 2 (010), 2 (010), 4 (100). We can select one instance of each distinct mask: {1, 2, 4} with sum 1+2+4=7. Selecting duplicates does not increase the sum since they share the same bits.

Constraints

  • 1 <= grid.length <= 10^5
  • 0 <= grid[i] < 2^20
  • The sum of grid[i] over all i does not exceed 10^9
  • Time limit: 2 seconds
  • Space limit: 256 MB

Optimal Approach & Strategy

Use DP over 2^K masks, iterating through the array and updating compatible states, achieving O(N·2^K) time.

Brute Force Approach

Enumerate all subsequences, check bitmask conflicts, and keep the maximum sum; this is O(2^N) and impossible for large N.

Verified Code Solutions

JavaScript Solution
Time: O(N·2^K)
function solution(nums) {
   const n = nums.length;
   const dp = new Array(1 << n).fill(0).map(() => new Array(n).fill(0));
   for (let i = 0; i < n; i++) {
       dp[1 << i][i] = nums[i];
   }
   for (let mask = 0; mask < (1 << n); mask++) {
       for (let i = 0; i < n; i++) {
           if ((mask & (1 << i)) !== 0) {
               for (let j = 0; j < i; j++) {
                   if ((mask & (1 << j)) !== 0) {
                       dp[mask][i] = Math.max(dp[mask][i], dp[mask ^ (1 << i)][j] + nums[i]);
                   }
               }
           }
       }
   }
   let maxSum = 0;
   for (let i = 0; i < n; i++) {
       maxSum = Math.max(maxSum, dp[(1 << n) - 1][i]);
   }
   return maxSum;
}

Asked in Top Tech Interviews

CredGoogle

Solve in Interative Editor

Ready to test your code? Open our built-in compiler, run custom test suites, and see detailed complexity analysis reports instantly.