2103 环和杆
2023-03-22 08:36 作者:目标力扣Knight | 我要投稿

方法一:暴力枚举 + 哈希
新建嵌套容器contain,外层为vector数组,内层为set类型的容器,按照杆的编号存储颜色;读取 rangs 并且存储入contain之后,遍历该数组,统计set集合容器大小为3的个数,返回个数即可;
Python版本
C++版本
复杂度分析
时间复杂度:O(N)。此处的 n 指的是字符数组 rings 的长度,其后还需要遍历统计具备三色环的杆,而杆的上限为10。
空间复杂度:O(C)。此处的 n 指的是存储每一个杆上三色环的嵌套数组 contain的数量,外层 vector 数组最大为10,最多每个杆均具备三色环,即 10 * 3。
方法二:
Python版本
C++版本
复杂度分析
时间复杂度:O(N)。此处的 n 指的是字符数组 rings 的长度,第二次遍历每个杆时,仅需要10次, 即 N + C的总复杂度。
空间复杂度:O(C)。三色环使用数字的二进制位表达,仅需要十个数字,即C=10;
备注
简单的哈希构造,一般遇到26字符都可以考虑二进制表达,以前遇到的对象都是是否两种属性,此次的RGB包含三种属性;