n個整數,其中有兩個數是重復的,要求找出這兩個重復的整數
- 方法一
- 方法二
- 方法三
- 空間復雜度的計算
- 常量空間
- 線性空間
- 二維空間
- 遞歸空間

方法一
使用set集合
- 將每一個元素放到set集合中,加入的時候判斷集合中是否存在此元素,如果if判斷找到了這個元素,返回為true
方法二
- 使用map,形成一個字典;key是對應的元素,value對應出現的次數。
- 字典本身的時間復雜度是O(1),整個算法的時間復雜度是O(n)
- 所謂的字典 也叫散列表,需要開辟一段內存來存儲有用的數據信息
- 空間復雜度:是指一個算法在運行過程中臨時占用的存儲空間的大小的量度,同樣使用大寫的O表示
方法三
- 二重循環 low 省略
空間復雜度的計算
常量空間
- 算法的存儲空間大小固定,和輸入規模沒有直接的關系 O(1)
線性空間
- 數組,申請的空間大小和輸入的規模成正比 O(n)
二維空間
- 集合輸入的規模的長度和寬度 都與輸入的規模n呈正比,O(n^2)
遞歸空間
- 遞歸調用 數據棧里面存儲的數據激增,只有遇到終止條件,進行數據的出棧,返回最后的結果
- 遞歸操作所需要的內存空間和遞歸的深度呈正比。純粹的遞歸操作的空間復雜度是線性的,如果遞歸的深度是n,那么空間復雜度是O(n)