判断int数组中的元素是否重复,
详细的问题说明,有如果重复则返回true,否则返回false方法声明:publicbooleanisRepeated(int[]m){}助于回答者给出准确的答案...
详细的问题说明,有如果重复则返回true,否则返回false 方法声明:public boolean isRepeated(int[] m){ }助于回答者给出准确的答案
展开
5个回答
展开全部
告诉你个实用的 用HASHMAP
循环这个数组,然后将每个元素存放到 HASHMAP当中
然后判断HASHMAP中 元素的个数是不是 小于 这个数组的元素个数,如果小于,那么就说明有重复的了
你可以自己去看看HASHMAP是什么东西,现在别觉得复杂,这东西真的很好用,
当然这里用HASHMAP是因为,HASHMAP的关键字,不允许重复,如果重复就会自动把之前的覆盖掉,所以如果重复了 它就会覆盖掉,那么就会少掉一个元素了。
所以元素个数变少就说明有重复了
循环这个数组,然后将每个元素存放到 HASHMAP当中
然后判断HASHMAP中 元素的个数是不是 小于 这个数组的元素个数,如果小于,那么就说明有重复的了
你可以自己去看看HASHMAP是什么东西,现在别觉得复杂,这东西真的很好用,
当然这里用HASHMAP是因为,HASHMAP的关键字,不允许重复,如果重复就会自动把之前的覆盖掉,所以如果重复了 它就会覆盖掉,那么就会少掉一个元素了。
所以元素个数变少就说明有重复了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你写了两种方法。。
import java.util.HashSet;
import java.util.Set;
public class IsRepeated {
public static void main(String[] arg) {
System.out.println(isRepeated2(new int[] { 1, 2, 3, 4, 5, 5 }));
}
public static boolean isRepeated(int[] nums) {
boolean flag = false;
for (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[i] == nums[j]) {
flag = true;
break;
}
}
}
return flag;
}
public static boolean isRepeated2(int[] nums) {
boolean flag = false;
Set<Integer> set = new HashSet<Integer>();
for(int i = 0; i < nums.length; i++) {
if(!set.add(nums[i])) {
flag = true;
break;
}
}
return flag;
}
}
import java.util.HashSet;
import java.util.Set;
public class IsRepeated {
public static void main(String[] arg) {
System.out.println(isRepeated2(new int[] { 1, 2, 3, 4, 5, 5 }));
}
public static boolean isRepeated(int[] nums) {
boolean flag = false;
for (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[i] == nums[j]) {
flag = true;
break;
}
}
}
return flag;
}
public static boolean isRepeated2(int[] nums) {
boolean flag = false;
Set<Integer> set = new HashSet<Integer>();
for(int i = 0; i < nums.length; i++) {
if(!set.add(nums[i])) {
flag = true;
break;
}
}
return flag;
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样循环嵌套循环效率会有影响的,一次循环的,给你个代码吧:
public boolean isRepeated(int[] m){
Map<Integer,Boolean> tp = new HashMap<Integer,Boolean>();
for(int i=0; i<m.length; i++){
if(tp.get(m[i])!=null){return true;}
else{tp.put(m[i],true);}
}
return false;
}
public boolean isRepeated(int[] m){
Map<Integer,Boolean> tp = new HashMap<Integer,Boolean>();
for(int i=0; i<m.length; i++){
if(tp.get(m[i])!=null){return true;}
else{tp.put(m[i],true);}
}
return false;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你思路吧,最好还是自己做出来
1、对m数组进行排序
2、比较m[i]是否等于m[i+1],相等就存在重复,不等就循环比较下一个
如果什么都等别人给你答案,你就没法进步了
1、对m数组进行排序
2、比较m[i]是否等于m[i+1],相等就存在重复,不等就循环比较下一个
如果什么都等别人给你答案,你就没法进步了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
而他而俄方给vedrfgt
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询