给定一个整数数组,判断是否存在重复元素。数组
若是任何值在数组中出现至少两次,函数返回 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分钟就写出来了,心中窃喜,是否是我锻炼有效果了。但事实其实就是真的很简单。练习坚持依旧须要坚持。任重道远,我当锲而不舍。