2395. 和相等的子數(shù)組
2023-02-05 19:05 作者:目標力扣Knight | 我要投稿

對讀者的要求
了解與理解集合的概念
知道兩層for循環(huán)
題意簡述
尋找數(shù)組中,兩對連續(xù)一個子數(shù)組,其和相等;
數(shù)組長度大于2且小于1000;
方法一:雙指針
遍歷數(shù)組中的每一個數(shù)組,從位序1開始取元素,到 nums
數(shù)組減一的位序截止, 取得一對連續(xù)長度為2的子數(shù)組。枚舉每一對子數(shù)組即可;
可以特判,即使在兩個子數(shù)組,第一個子數(shù)組第二個元素和第二個子數(shù)組的第一個元素重合的情況下,整個數(shù)組的長度至少為3;
Python版本
C++版本
復雜度分析
時間復雜度:O(N ^ 2)。此處的 n 是數(shù)組
nums
的長度;空間復雜度: O(1)。
方法二:集合
題目要求從數(shù)組 nums
中找出一對子數(shù)組之和相等的數(shù)對即可??紤]最壞情況,數(shù)組中恰好有兩個數(shù)字相等,且這兩個數(shù)字中間還有一個數(shù),作為它倆子數(shù)組的交集;
我們可以判斷,nums
數(shù)組中只要有三個數(shù)字滿足以上的條件即可滿足題意。因此數(shù)組的元素在去掉重復之后,最多有 n - 1 個元素。
Python版本
C++版本
復雜度分析
時間復雜度: O(N)。 此處的 n 指的是 數(shù)組
nums
的長度。空間復雜度:O(N)。 最壞情況下數(shù)組元素各異,找不到滿足題意的子數(shù)組,集合存儲了所有
nums
中的數(shù)字。
備注
函數(shù)說明:Python3.10提供支持,用于生成連續(xù)兩個元素組合,樣例如下:
標簽: