题目:给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
看到题目立刻写答案:
public boolean containsDuplicate(int[] nums) {
int n=nums.length;
for(int i=0;i<n;++i){
for(int j=i+1;j<n;++j){
if(nums[i]==nums[j]){
return true;
}
}
}
return false;
}
一提交,果不其然超时了。。。
改进版:
public boolean containsDuplicate(int[] nums) {
int n=nums.length;
Arrays.sort(nums);
for(int i=0;i<n-1;++i){
if(nums[i]==nums[i+1]){
return true;
}
}
return false;
}
先排序,再判断相邻元素是否相同,即可判断数组内是否存在相同元素。
这边还要留意下Java常用类库——Arrays类(用于普通数组操作)
Arrays类是数组的操作类,定义在java.util包中,主要的功能可以实现数组元素的查找,数组内容的填充、排序等。
常用的方法有:
public static boolean equals(int[] a, int[] a2) 判断两个数组
是否相等,此方法被重载多次,可以判断各种数组类型的数组。
public static void fill(int[] a,int val) 将指定的内容填充到数组
之中,此方法被重载多次,可以填充各种数据类型的数组
public static void sort(int[] a) 数组排序,此方法被重载多次,
可以对各种类型的数组进行排序。
public static int binarySearch(int[] a,int key) 对排序后的数组进行
二分法检索,此方法被重载多次,可以对各种数据类型的数组进行搜索。
public static String toString(int[] a) 输出数组信息,此方法被重载
多次,可以输出各种数据类型的数组。