题目描述:
给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false
分析:
1.两层循环遍历数组一个个比较
1 bool containsDuplicate(int* nums, int numsSize) { 2 if(numsSize<=1)return false; 3 4 int i, j; 5 for(i = 0; i < numsSize - 1; i++) 6 { 7 for(j = i + 1; j < numsSize; j++){ 8 if(nums[i] == nums[j]) 9 return true; 10 } 11 } 12 13 return false; 14 }
但是,效率又双叒叕太低了,没通过..
2.先对数组进行排序,从第二个开始比较它的前一个,就用java写了
1 class Solution { 2 public boolean containsDuplicate(int[] nums) { 3 if(nums==null||nums.length<2) 4 return false; 5 Arrays.sort(nums); 6 for(int i=1;i<nums.length;i++){ 7 if(nums[i]==nums[i-1]) 8 return true; 9 } 10 return false; 11 } 12 }