Leetcode演算法修煉(四)存在重複

2021-09-25 16:36:20 字數 1156 閱讀 5416

給定乙個整數陣列,判斷是否存在重複元素。

如果任何值在陣列**現至少兩次,函式返回 true。如果陣列中每個元素都不相同,則返回 false。

示例 1:

輸入:[1,2,3,1]輸出:true
示例 2:

輸入:[1,2,3,4]輸出:false
示例 3:

輸入:[1,1,1,3,3,4,3,2,4,2]輸出:true
因為之前做過類似的題目,所以馬上就會想到兩種解題思路,一是使用set集合去重解決,這是**最為簡潔的方式,第二個就是使用map也可以,最後就是遍歷每個元素及其之後的元素 有相同的元素就返回true。方法如下。

方式1(使用set):

let set = new set(nums);

if(set.size===nums.length)else

因為set是乙個不儲存重複元素的集合,因此把陣列傳入set的建構函式後會生成去重後的集合,隨後只需要判斷元素組與新建集合的長度即可。

方式2(使用map):

let map = new map();

for(let i=0;i此思路就是把元素依次放入map中,在將元素依次放入map中的同時,把遍歷到的元素與map中以放入的不重複元素比較,如果是已有的元素,返回true,否則將該元素放入map中,依次類推。

方式3(暴力迴圈):

for(let i=0;i這個很容易理解,就是把每個陣列的元素與它之後的每個元素進行比較就可以了,為什麼是與遍歷到的元素之後的元素比較而不是每個元素都再與其他元素比較一遍呢,因為我們遍歷到的元素已經和它之前的元素比較過了,就是在遍歷前面的元素時比較的。

這次解題時迄今為止最為順利的(主要是題目簡單吧=。=),馬上就想到了多個方法解決。不過這也依賴於之前我看到過類似的陣列判斷重複元素的演算法題目,雖然不完全相同,但是思路差不多。所以呢,多做題還是很有幫助的,有助於開闊我們的解題思路。

Leetcode演算法修煉(七)加一

給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位,陣列中每個元素只儲存單個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。示例 1 輸入 1,2,3 輸出 1,2,4 解釋 輸入陣列表示數字 123。示例 2 輸入 4,3,2,1 輸出 4,3,...

LeetCode初級演算法之陣列 存在重複

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

LeetCode 存在重複

給定乙個整數陣列,判斷是否存在重複元素。如果任何值在陣列中出現至少兩次,函式應該返回 true。如果每個元素都不相同,則返回 false。實現思路 我們假設陣列中的元素不重複,兩兩比較陣列中的元素,使用陣列中的第乙個元素和後續所有元素比較,接著使用陣列中的第二個元素和後續元素比較,依次類推實現兩兩比...