Count Number of Special Subsequences LeetCode solution in C++
1class Solution {2public:3int countSpecialSubsequences(vector<int> &nums) {4long long z = 0, o = 0, t = 0;5long long mod = 1e9 + 7;6for (int i = 0; i < nums.size(); i++) {7if (nums[i] == 0)8z = (z + z + 1) % mod;9else if (nums[i] == 1)10o = (o + o + z) % mod;11else12t = (t + t + o) % mod;13}14return (((t % mod) + mod) % mod);15}16};