Longest Nice Subarray - Problem

You are given an array nums consisting of positive integers.

We call a subarray of nums nice if the bitwise AND of every pair of elements that are in different positions in the subarray is equal to 0.

Return the length of the longest nice subarray.

A subarray is a contiguous part of an array.

Note: subarrays of length 1 are always considered nice.

Input & Output

Example 1 — Basic Case
$ Input: nums = [1,3,8,48,10]
Output: 3
💡 Note: The longest nice subarray is [3,8,48] with length 3. Each pair has AND = 0: 3&8=0, 3&48=0, 8&48=0.
Example 2 — Single Element
$ Input: nums = [3,1,5,11,13]
Output: 1
💡 Note: No pair of elements has AND = 0, so the longest nice subarray has length 1 (any single element).
Example 3 — All Elements Nice
$ Input: nums = [1,2,4]
Output: 3
💡 Note: All elements have disjoint bits: 1&2=0, 1&4=0, 2&4=0. The entire array is nice with length 3.

Constraints

  • 1 ≤ nums.length ≤ 105
  • 1 ≤ nums[i] ≤ 109

Visualization

Tap to expand
Longest Nice Subarray Problem1384810Input: [1, 3, 8, 48, 10]Nice subarray: length 33 & 8 = 0 ✓3 & 48 = 0 ✓8 & 48 = 0 ✓All pairs in green subarray have AND = 0Output: 3
Understanding the Visualization
1
Input
Array [1,3,8,48,10] - find longest nice subarray
2
Process
Check subarrays where all pairs AND to 0
3
Output
Length 3 from subarray [3,8,48]
Key Takeaway
🎯 Key Insight: Elements in a nice subarray must have completely disjoint bit patterns
Asked in
Google 25 Amazon 20 Microsoft 15
18.5K Views
Medium Frequency
~25 min Avg. Time
850 Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen