技術乾貨:如何判斷一個整數陣列是否存在重複元素......

千鋒Python唐小強發表於2019-10-10

今日問題:

給定一個整數陣列,你如何判斷是否存在重複元素。

如果任何值在陣列中出現至少兩次,函式返回 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
技術乾貨:如何判斷一個整數陣列是否存在重複元素......

解題思路:

排序陣列,連續兩個數相等則證明存在重複元素。

直接用雜湊集合:新建一個雜湊集合,逐個向集合內新增元素,如果遇到元素未新增成功,則證明存在重複元素,返回 True ,反之返回 False。

程式碼:

這裡用的雜湊集合解題

Java:

class Solution {
 public boolean containsDuplicate(int[] nums) {
 Set<Integer> set = new LinkedHashSet<>();
 for (int num : nums) {
 if (!set.add(num)) return true; //加入集合未成功,證明集合內已有一個相同元素,返回False
 }
 return false;
 }
}

Python:

Python中 set() 函式可以直接將陣列轉化為雜湊集合。直接比較轉化後的雜湊集合長度與原陣列長度是否相等,相等證明原陣列無重複元素,不相等則證明原陣列含有重複元素。

class Solution:
 def containsDuplicate(self, nums: List[int]) -> bool:
 return len(nums) != len(set(nums)) #比較長度

夥伴們有需要補充的可以留言!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2659353/,如需轉載,請註明出處,否則將追究法律責任。

相關文章