2103 環(huán)和桿
2023-03-22 08:36 作者:目標(biāo)力扣Knight | 我要投稿

方法一:暴力枚舉 + 哈希
新建嵌套容器contain,外層為vector數(shù)組,內(nèi)層為set類型的容器,按照桿的編號存儲顏色;讀取 rangs 并且存儲入contain之后,遍歷該數(shù)組,統(tǒng)計set集合容器大小為3的個數(shù),返回個數(shù)即可;
Python版本
C++版本
復(fù)雜度分析
時間復(fù)雜度:O(N)。此處的 n 指的是字符數(shù)組 rings 的長度,其后還需要遍歷統(tǒng)計具備三色環(huán)的桿,而桿的上限為10。
空間復(fù)雜度:O(C)。此處的 n 指的是存儲每一個桿上三色環(huán)的嵌套數(shù)組 contain的數(shù)量,外層 vector 數(shù)組最大為10,最多每個桿均具備三色環(huán),即 10 * 3。
方法二:
Python版本
C++版本
復(fù)雜度分析
時間復(fù)雜度:O(N)。此處的 n 指的是字符數(shù)組 rings 的長度,第二次遍歷每個桿時,僅需要10次, 即 N + C的總復(fù)雜度。
空間復(fù)雜度:O(C)。三色環(huán)使用數(shù)字的二進制位表達,僅需要十個數(shù)字,即C=10;
備注
簡單的哈希構(gòu)造,一般遇到26字符都可以考慮二進制表達,以前遇到的對象都是是否兩種屬性,此次的RGB包含三種屬性;
標(biāo)簽: