用雜湊表去陣列重複項,有詳細注釋

2022-04-15 21:17:27 字數 761 閱讀 6195

這個我不懂,男朋友給我講了一遍,我還是不太明白,於是自己帶入例項乙個乙個理了一遍,寫上了很詳細的注釋,如果有人能看到,並且和我一樣不太理解,希望看到這個就都能懂哈,哎學習中的菜鳥傷不起~

var countarr = [1, 2, 1];

function

unique(arr) ; //

定義返回的陣列,和雜湊表

for (var i = 0, elem;

(elem = arr[i]) != null; i++) ,所以hash[1]沒有值為false,!hash[1]就為true,執行if內部語句

//②這時elem=2,if(!hash[2])由於這時hash=,所以hash[2]沒有值為false,!hash[2]就為true,執行if內部語句

//③這時elem=1,if(!hash[1])由於這時hash=,所以hash[1]有值為true,!hash[1]就為false,不執行if內部語句

resultarr.push(elem);

//①resultarr=[1]

//②resultarr=[1,2]

//不執行第三次

hash[elem] = true

;

//①hash=

//②hash=

//不執行第三次

}; };

return

resultarr;

}document.write(unique(countarr));

Go 217 存在重複 陣列 雜湊表

給定乙個整數陣列,判斷是否存在重複元素。如果任何值在陣列中出現至少兩次,函式返回 true。如果陣列中每個元素都不相同,則返回 false。輸入 1,2,3,1 輸出 true 輸入 1,2,3,4 輸出 false 輸入 1,1,1,3,3,4,3,2,4,2 輸出 true 2018 12 6 ...

js 陣列去重複項的五種方法比較

第一種 耗時最長,用了雙重迴圈 array.prototype.unique1 function r r.length this i return r 第二種 用了正規表示式 array.prototype.unique2 function 第三種 用了hasownproperty array.pr...

演算法 合併鍊錶 刪除陣列重複項

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 遞迴解法的思路每次找出輸出的兩個鍊錶的最小值,將其next指標指向其他的鏈元素,再從其他的鏈元素中尋找最小的值,依此類推。當兩條鏈中的一條鏈為...