數組去重方法

常規方法

思路

構建一個新的數組用來存放結果

for循環中每次從原數組取出一個元素,用這個元素循環與結果數組對比

若結果數組中沒有該元素,則存到結果數組中


比上述的方法高效一點

思路

先將原數組進行排序

檢查原數組中的第i個元素與結果數組中的最后一個元素是否相同(因為已經排序,所以重復元素會在相鄰位置)

如果不相同,則將該元素存入結果數組中


這種方法會在去重之前進行排序,所以最后返回的結果也是排序之后的。如果要求不改變數組的順序去重,這種方法是不可取的。

三、利用哈希值

思路

創建一個新的數組存放結果

創建一個新的對象

for循環時,每次取出一個元素與對象進行對比,如果這個元素不重復,則把它存放到結果數組中,同時把這個元素的內容作為對象的一個屬性,并賦值為1,存放入到第2步建立的對象中。

至于如何對比,就是每次從原數組中取出一個元素,然后到對象中去訪問這個屬性,如果能訪問到值,說明重復了。


這種方法效率最高,在處理長數組的時候很有優勢,推薦使用。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 第一種是比較常規的方法 思路: 1.構建一個新的數組存放結果 2.for循環中每次從原數組中取出一個元素,用這個元...
    Rose_yang閱讀 307評論 0 0
  • 一、1.構建一個新的數組存放結果2.for循環中每次從原數組中取出一個元素,用這個元素循環與結果數組對比3.若結果...
    zhangjianli閱讀 266評論 1 1
  • 面值試中常會被問到的問題--數組去重方法,此處整理了6中方法,后續添加。1、arr.filter() 2、先排序再...
    codeholding閱讀 284評論 0 0
  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,081評論 6 13
  • 寒露雕樹冬欲濃, 大雪裁衣春始萌。 自是冬鵲啼不盡, 一夜畫梅訴西風。
    boysfly閱讀 225評論 0 2