C++中數(shù)組去重的算法有哪些

c++
小樊
95
2024-08-07 16:14:19

  1. 使用set容器:將數(shù)組中的元素插入到set容器中,set容器中元素自動(dòng)去重,最后將set容器中的元素復(fù)制回?cái)?shù)組。

  2. 使用排序+去重:先對(duì)數(shù)組進(jìn)行排序,然后遍歷數(shù)組,如果當(dāng)前元素與前一個(gè)元素不相同,則將其保存下來(lái),最后得到的就是去重后的數(shù)組。

  3. 使用雙指針:設(shè)置兩個(gè)指針i和j,i指向數(shù)組起始位置,j從i+1開(kāi)始遍歷數(shù)組,如果arr[i] != arr[j],則將arr[j]賦值給arr[i+1],i++,j繼續(xù)向后遍歷,直到遍歷結(jié)束。最后數(shù)組的前i+1個(gè)元素就是去重后的數(shù)組。

  4. 使用unordered_set(哈希表):利用哈希表的特性,遍歷數(shù)組,將數(shù)組中的元素插入到unordered_set中,最后將unordered_set中的元素復(fù)制回?cái)?shù)組。

  5. 使用標(biāo)記法:遍歷數(shù)組,使用一個(gè)標(biāo)記數(shù)組記錄每個(gè)元素是否已經(jīng)出現(xiàn)過(guò),如果沒(méi)有出現(xiàn)過(guò),則將其加入到結(jié)果數(shù)組中。

0