第九個算法-重複元素

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

若是任何值在數組中出現至少兩次,函數返回 true。若是數組中每一個元素都不相同,則返回 false。函數

示例 1:spa

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

示例 2:排序

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

示例 3:效率

輸入: [1,1,1,3,3,4,3,2,4,2]
輸出: true

思路:
1,第一想法就是排序,有序數組。
2,而後直接對比,若是第n個和第n+1個數組相等,就說明有重複。

個人代碼:
public boolean containsDuplicate(int[] nums) {

boolean bool = false;
Arrays.sort(nums);

for (int i = 0; i <nums.length-1 ; i++) {
if(nums[i]==nums[i+1]){
bool = true;
}
}
return bool;
}


別人的效率高的代碼:
public boolean containsDuplicate(int[] nums) {
for (int i = 1; i < nums.length; i++) {
for (int j = i - 1; j >= 0; j--) {
if(nums[i] > nums[j])
{
break;
}
else if(nums[i] == nums[j])
{
return true;
}
}

}
return false;
}
此次5分鐘就寫出來了,心中竊喜,是否是我鍛鍊有效果了。但事實其實就是真的很簡單。練習堅持依舊須要堅持。任重道遠,我當鍥而不捨。
相關文章
相關標籤/搜索