文章目录

  • 1. 题目
  • 2. 解题

1. 题目

特殊序列 是由 正整数 个 0 ,紧接着 正整数 个 1 ,最后 正整数 个 2 组成的序列。

比方说,[0,1,2][0,0,1,1,1,2] 是特殊序列。
相反,[2,1,0] ,[1] 和 [0,1,2,0] 就不是特殊序列。

给你一个数组 nums (仅 包含整数 0,1 和 2),请你返回 不同特殊子序列的数目
由于答案可能很大,请你将它对 10^9 + 7 取余 后返回。

一个数组的 子序列 是从原数组中删除零个或者若干个元素后,剩下元素不改变顺序得到的序列。
如果两个子序列的 下标集合 不同,那么这两个子序列是 不同的 。

示例 1:
输入:nums = [0,1,2,2]
输出:3
解释:特殊子序列为 [0,1,2,2],[0,1,2,2] 和 [0,1,2,2] 。示例 2:
输入:nums = [2,2,0,0]
输出:0
解释:数组 [2,2,0,0] 中没有特殊子序列。示例 3:
输入:nums = [0,1,2,0,1,2]
输出:7
解释:特殊子序列包括:
- [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]提示:
1 <= nums.length <= 10^5
0 <= nums[i] <= 2

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-number-of-special-subsequences
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {public:int countSpecialSubsequences(vector<int>& nums) {long long p0 = 0, p1 = 0, p2 = 0, mod = 1e9+7;for(auto n : nums){if(n==0){p0 = (p0*2+1)%mod;//前面的0有多少种取法,2进制}else if(n==1){p1 = (p0+p1*2)%mod;//以1结尾的种类//当前1是第一个,前面0结尾的有 p0种//当前1不取,前面以1结尾的有 p1种//当前1取,前面以1结尾的有 p1种// 三种情况合起来}else{p2 = (p1+p2*2)%mod;//同理}}return p2;}
};

156 ms 168.1 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1955. 统计特殊子序列的数目相关推荐

  1. leetcode 1399. 统计最大组的数目

    [题目]1399. 统计最大组的数目 给你一个整数 n .请你先求出从 1 到 n 的每个整数 10 进制表示下的数位和(每一位上的数字相加),然后把数位和相等的数字放到同一个组中. 请你统计每个组中 ...

  2. LeetCode 1925. 统计平方和三元组的数目

    文章目录 1. 题目 2. 解题 1. 题目 一个 平方和三元组 (a,b,c) 指的是满足 a2+b2=c2a^2 + b^2 = c^2a2+b2=c2 的 整数 三元组 a,b 和 c . 给你 ...

  3. LeetCode 1254. 统计封闭岛屿的数目(图的BFS DFS)

    文章目录 1. 题目 2. 解题 2.1 DFS 2.2 BFS 1. 题目 有一个二维矩阵 grid ,每个位置要么是陆地(记号为 0 )要么是水域(记号为 1 ). 我们从一块陆地出发,每次可以往 ...

  4. LeetCode 1922. 统计好数字的数目(快速幂)

    文章目录 1. 题目 2. 解题 1. 题目 我们称一个数字字符串是 好数字 当它满足(下标从 0 开始)偶数 下标处的数字为 偶数 且 奇数 下标处的数字为 质数 (2,3,5 或 7). 比方说, ...

  5. LeetCode 1684. 统计一致字符串的数目(哈希)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个由不同字符组成的字符串 allowed 和一个字符串数组 words . 如果一个字符串的每一个字符都在 allowed 中,就称这个字符串是 一 ...

  6. `算法竞赛题解` LeetCode.6115 统计理想数组的数目

    题目链接 题目描述 给你两个整数 n 和 maxValue ,用于描述一个 理想数组 . 对于下标从 0 开始.长度为 n 的整数数组 arr ,如果满足以下条件,则认为该数组是一个 理想数组 : 每 ...

  7. C++描述 LeetCode 5677. 统计同构子字符串的数目

    C++描述 LeetCode 5677. 统计同构子字符串的数目   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写 ...

  8. LeetCode每日一题——1684. 统计一致字符串的数目

    LeetCode每日一题系列 题目:1684. 统计一致字符串的数目 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个由不同字符组成的字符串 allowed ...

  9. Leetcode.1641 统计字典序元音字符串的数目

    题目链接 Leetcode.1641 统计字典序元音字符串的数目 Rating : 1519 题目描述 给你一个整数 n,请返回长度为 n.仅由元音 (a, e, i, o, u)组成且按 字典序排列 ...

最新文章

  1. UVa 11520 Fill the Square 填充正方形
  2. 爬取百度知道分类_百度指数爬虫|介绍篇
  3. mysql中timestamp类型数据查找中出现的问题
  4. android aar项目_介绍如何调试Xamarin.Android的binding项目
  5. 我的框架——MyBean
  6. web页面和ssh登陆到防火墙
  7. 量化感知训练_《量化健身 动作精讲》:专业解读健美身材的秘密
  8. 计算机本地连接xp,xp系统本地连接不见了的解决方法
  9. Android系统各个版本发布时间
  10. Source Insight 最新版本
  11. 2014热门网络词汇汇总
  12. 深度学习是什么?应用在哪些方向?
  13. java发送s mime邮件_SpringBoot集成实现各种邮件发送
  14. html结合css样式作用,css样式表可以实现什么功能?
  15. springboot入门书籍_2019版JavaEE学习路线图(内含大纲+视频+工具+书籍+面试)
  16. 海滩景色Mac高清动态壁纸
  17. 奇虎360退出美国股市 12月再曝拟私有化
  18. C#初探-抽学号软件
  19. 如何把int数组中的相同元素,从数组中删除。
  20. CNI 网络流量 5.3 Cilium 流量分析(二)

热门文章

  1. python中tkinter的使用-下
  2. celery AttributeError: 'str' object has no attribute 'items'
  3. C语言里if语句变量作为判断条件,C语言教学(九-上)if else判断语句
  4. 驱动框架8——将驱动集成到内核中
  5. 解构领域驱动设计(三):领域驱动设计
  6. 【java设计模式】【行为模式Behavioral Pattern】迭代器模式Iterator Pattern
  7. Spring总结四:IOC和DI 注解方式
  8. centos安装Python2.7
  9. SQLlite 分页
  10. 关于html标签元素的data-*属性