給定一個整數數組,判斷是否存在重複元素。數組
若是任何值在數組中出現至少兩次,函數返回 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分鐘就寫出來了,心中竊喜,是否是我鍛鍊有效果了。但事實其實就是真的很簡單。練習堅持依舊須要堅持。任重道遠,我當鍥而不捨。