g2501_2600.s2518_number_of_great_partitions.readme.md Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java Show documentation
Show all versions of leetcode-in-java Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
2518\. Number of Great Partitions
Hard
You are given an array `nums` consisting of **positive** integers and an integer `k`.
**Partition** the array into two ordered **groups** such that each element is in exactly **one** group. A partition is called great if the **sum** of elements of each group is greater than or equal to `k`.
Return _the number of **distinct** great partitions_. Since the answer may be too large, return it **modulo** 109 + 7
.
Two partitions are considered distinct if some element `nums[i]` is in different groups in the two partitions.
**Example 1:**
**Input:** nums = [1,2,3,4], k = 4
**Output:** 6
**Explanation:** The great partitions are: ([1,2,3], [4]), ([1,3], [2,4]), ([1,4], [2,3]), ([2,3], [1,4]), ([2,4], [1,3]) and ([4], [1,2,3]).
**Example 2:**
**Input:** nums = [3,3,3], k = 4
**Output:** 0
**Explanation:** There are no great partitions for this array.
**Example 3:**
**Input:** nums = [6,6], k = 2
**Output:** 2
**Explanation:** We can either put nums[0] in the first partition or in the second partition. The great partitions will be ([6], [6]) and ([6], [6]).
**Constraints:**
* `1 <= nums.length, k <= 1000`
* 1 <= nums[i] <= 109