3404. Count Special Subsequences Medium

@problem@discussion
#Array#Hash Table#Math#Enumeration



1/**
2 * [3404] Count Special Subsequences
3 *
4 * You are given an array nums consisting of positive integers.
5 * A special subsequence is defined as a <span data-keyword="subsequence-array">subsequence</span> of length 4, represented by indices (p, q, r, s), where p < q < r < s. This subsequence must satisfy the following conditions:
6 * 
7 * 	nums[p] * nums[r] == nums[q] * nums[s]
8 * 	There must be at least one element between each pair of indices. In other words, q - p > 1, r - q > 1 and s - r > 1.
9 * 
10 * Return the number of different special subsequences in nums.
11 *  
12 * <strong class="example">Example 1:
13 * <div class="example-block">
14 * Input: <span class="example-io">nums = [1,2,3,4,3,6,1]</span>
15 * Output: <span class="example-io">1</span>
16 * Explanation:
17 * There is one special subsequence in nums.
18 * 
19 * 	(p, q, r, s) = (0, 2, 4, 6):
20 * 	
21 * 		This corresponds to elements (1, 3, 3, 1).
22 * 		nums[p] * nums[r] = nums[0] * nums[4] = 1 * 3 = 3
23 * 		nums[q] * nums[s] = nums[2] * nums[6] = 3 * 1 = 3
24 * 	
25 * 	
26 * </div>
27 * <strong class="example">Example 2:
28 * <div class="example-block">
29 * Input: <span class="example-io">nums = [3,4,3,4,3,4,3,4]</span>
30 * Output: <span class="example-io">3</span>
31 * Explanation:
32 * There are three special subsequences in nums.
33 * 
34 * 	(p, q, r, s) = (0, 2, 4, 6):
35 * 	
36 * 		This corresponds to elements (3, 3, 3, 3).
37 * 		nums[p] * nums[r] = nums[0] * nums[4] = 3 * 3 = 9
38 * 		nums[q] * nums[s] = nums[2] * nums[6] = 3 * 3 = 9
39 * 	
40 * 	
41 * 	(p, q, r, s) = (1, 3, 5, 7):
42 * 	
43 * 		This corresponds to elements (4, 4, 4, 4).
44 * 		nums[p] * nums[r] = nums[1] * nums[5] = 4 * 4 = 16
45 * 		nums[q] * nums[s] = nums[3] * nums[7] = 4 * 4 = 16
46 * 	
47 * 	
48 * 	(p, q, r, s) = (0, 2, 5, 7):
49 * 	
50 * 		This corresponds to elements (3, 3, 4, 4).
51 * 		nums[p] * nums[r] = nums[0] * nums[5] = 3 * 4 = 12
52 * 		nums[q] * nums[s] = nums[2] * nums[7] = 3 * 4 = 12
53 * 	
54 * 	
55 * </div>
56 *  
57 * Constraints:
58 * 
59 * 	7 <= nums.length <= 1000
60 * 	1 <= nums[i] <= 1000
61 * 
62 */
63pub struct Solution {}
64
65// problem: https://leetcode.com/problems/count-special-subsequences/
66// discuss: https://leetcode.com/problems/count-special-subsequences/discuss/?currentPage=1&orderBy=most_votes&query=
67
68// submission codes start here
69
70impl Solution {
71    pub fn number_of_subsequences(nums: Vec<i32>) -> i64 {
72        
73    }
74}
75
76// submission codes end
77
78#[cfg(test)]
79mod tests {
80    use super::*;
81
82    #[test]
83    fn test_3404() {
84    }
85}
86


Back
© 2025 bowen.ge All Rights Reserved.