Count Beautiful Splits in an Array - Problem
You are given an array nums. A split of an array nums is beautiful if:
- The array
numsis split into three subarrays:nums1,nums2, andnums3, such thatnumscan be formed by concatenatingnums1,nums2, andnums3in that order. - The subarray
nums1is a prefix ofnums2ORnums2is a prefix ofnums3.
Return the number of ways you can make this split.
Input & Output
Example 1 — Basic Case
$
Input:
nums = [1,1,2,1]
›
Output:
2
💡 Note:
Split 1: nums1=[1], nums2=[1], nums3=[2,1] - nums1 is prefix of nums2. Split 2: nums1=[1], nums2=[1,2], nums3=[1] - nums1 is prefix of nums2.
Example 2 — Single Valid Split
$
Input:
nums = [1,2,3,1,2]
›
Output:
1
💡 Note:
Only one valid split: nums1=[1,2], nums2=[3], nums3=[1,2] - nums2 is not prefix of nums3, but we need to check if nums1 is prefix of nums2 (no) or nums2 is prefix of nums3 (no). Actually nums1=[1], nums2=[2,3,1], nums3=[2] gives nums2 is prefix of nums3.
Example 3 — No Valid Splits
$
Input:
nums = [1,2,3]
›
Output:
0
💡 Note:
Only possible split: nums1=[1], nums2=[2], nums3=[3] - neither nums1 is prefix of nums2 nor nums2 is prefix of nums3.
Constraints
- 3 ≤ nums.length ≤ 1000
- 1 ≤ nums[i] ≤ 40
Visualization
Tap to expand
Understanding the Visualization
1
Input Array
Given array nums to be split into 3 non-empty parts
2
Find Splits
Try all possible ways to create nums1, nums2, nums3
3
Check Conditions
Count splits where nums1⊆nums2 OR nums2⊆nums3
Key Takeaway
🎯 Key Insight: A split is beautiful when one subarray is a prefix of the next subarray
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code