java.lang.Object
g1901_2000.s1955_count_number_of_special_subsequences.Solution

public class Solution extends Object
1955 - Count Number of Special Subsequences\. Hard A sequence is **special** if it consists of a **positive** number of `0`s, followed by a **positive** number of `1`s, then a **positive** number of `2`s. * For example, `[0,1,2]` and `[0,0,1,1,1,2]` are special. * In contrast, `[2,1,0]`, `[1]`, and `[0,1,2,0]` are not special. Given an array `nums` (consisting of **only** integers `0`, `1`, and `2`), return _the **number of different subsequences** that are special_. Since the answer may be very large, **return it modulo** 109 + 7. A **subsequence** of an array is a sequence that can be derived from the array by deleting some or no elements without changing the order of the remaining elements. Two subsequences are **different** if the **set of indices** chosen are different. **Example 1:** **Input:** nums = [0,1,2,2] **Output:** 3 **Explanation:** The special subsequences are bolded [**0** , **1** , **2** ,2], [**0** , **1** ,2, **2** ], and [**0** , **1** , **2** , **2** ]. **Example 2:** **Input:** nums = [2,2,0,0] **Output:** 0 **Explanation:** There are no special subsequences in [2,2,0,0]. **Example 3:** **Input:** nums = [0,1,2,0,1,2] **Output:** 7 **Explanation:** The special subsequences are bolded: - [**0** , **1** , **2** ,0,1,2] - [**0** , **1** ,2,0,1, **2** ] - [**0** , **1** , **2** ,0,1, **2** ] - [**0** , **1** ,2,0, **1** , **2** ] - [**0** ,1,2, **0** , **1** , **2** ] - [**0** ,1,2,0, **1** , **2** ] - [0,1,2, **0** , **1** , **2** ] **Constraints:** * 1 <= nums.length <= 105 * `0 <= nums[i] <= 2`
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • countSpecialSubsequences

      public int countSpecialSubsequences(int[] nums)