欢迎光临散文网 会员登陆 & 注册

2103 环和杆

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

2103 环和杆

方法一:暴力枚举 + 哈希

新建嵌套容器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包含三种属性;

  • 在C++版本题解中,需要将字符形式的数字转换为数字形式,我在此处踩坑,还需要注意申请嵌套数组的方式。对于内外数据结构不同的数组,注意用数组穿透,对内部结构的数据修改,一定是使用内部数据结构的方法或者属性。


2103 环和杆的评论 (共 条)

分享到微博请遵守国家法律