1. 程式人生 > 其它 >判斷存在重複元素

判斷存在重複元素

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

如果存在一值在陣列中出現至少兩次,函式返回 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
相關標籤
陣列
雜湊表
排序

作者:力扣 (LeetCode)
連結:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x248f5/
來源:力扣(LeetCode)
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

classSolution{
publicbooleancontainsDuplicate(int[]nums){
//獲取長度,排除長度小於等於1
intlength=nums.length;
if(length<=1){
returnfalse;
}

//定義hash表
int[]hashArr=newint[length];
//0比較特殊,定義變數專門記0
intcount0=0;
//迴圈存入hash表(除餘hash演算法)
for(inti=0;i<length;i++){
//記0
if(nums[i]==0){
count0++;
if(count0>1){
returntrue;
}
continue;//不存入hash表,直接進入下一迴圈
}
//除餘
intyu=nums[i]%length;
//餘為負數處理
if(yu<0){
yu+=length;
}
//hash判斷

//判斷該位置是否有數
if(hashArr[yu]==0){
//無數則存入
hashArr[yu]=nums[i];
break;
}elseif(hashArr[yu]==nums[i]){
//有數且相等
returntrue;
}else{
//有數且不相等,存入後一位,以此類推
yu++;
if(yu>=length){
yu-=length;
}
}

}
returnfalse;
}
}

部落格地址: https://www.cnblogs.com/java2sap/
世界豐富多彩,知識天花亂墜。
---如果有幫到你,點個贊吧~