java初学者遇到的while语句问题,求帮助

yologic 2014-10-11 02:26:42
题目要求:有两个数组,每组数组中均有五个不同的数字,例如 12345,12378。找出输入的两组数组中拥有相同数字的个数。如例中得出3。


我是这样想的,让第一组数据中的第一个数字与第二组数据中的数字一个个比较,相同counter+1,然后再第一组数据中第一个数字递加重复动作。

int counter = 0;
int i = 0;
int j = 0;
while (i<5) {
while ((secretNumber.indexOf(i))!= (guess.indexOf(j))) {
j++;
}
counter++;
}
i++;
return counter;

}


自己写的code感觉总有那么一点不对劲啊,求帮助!
...全文
319 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yologic 2014-10-11
  • 打赏
  • 举报
回复
引用 1 楼 kifile 的回复:
你这段代码有一个逻辑问题,如果两组数字是类似,11234,11356,这样的形式,那么根据你的判断,会出现结果不对的情况 因为这里面的1,被反复成功了4次,那么本来相同的1只有2个,但是你的结果中会有4个,于是你的结果就错误了 并且这样,你的时间复杂度也比较高,为n^2, 你可以这么使用
 int counter = 0;
                int[] first = new int[10];
                int[] second = new int[10];
                for(Integer i : secretNumber){
                    first[i]++;
                }
                for(Integer i:guess){
                    second[i]++;
                }
                for(int i=0;i<10;i++){
                    counter += Math.min(first[i],second[i]);
                }
                return counter;
你的secretNumber和guess中的每个元素必定是0-9,于是将他放到一个10长度的数组里,记录每个值的数目,最后,根据两个数组的对应值进行累加就好了
不,这个题目有个前提就是每组数据中五个数字,数字与数字之间不相同
mobile-膜拜 2014-10-11
  • 打赏
  • 举报
回复
i++;向上提一行,放到while(i<5){……}里面
Kifile 2014-10-11
  • 打赏
  • 举报
回复
你这段代码有一个逻辑问题,如果两组数字是类似,11234,11356,这样的形式,那么根据你的判断,会出现结果不对的情况 因为这里面的1,被反复成功了4次,那么本来相同的1只有2个,但是你的结果中会有4个,于是你的结果就错误了 并且这样,你的时间复杂度也比较高,为n^2, 你可以这么使用
 int counter = 0;
                int[] first = new int[10];
                int[] second = new int[10];
                for(Integer i : secretNumber){
                    first[i]++;
                }
                for(Integer i:guess){
                    second[i]++;
                }
                for(int i=0;i<10;i++){
                    counter += Math.min(first[i],second[i]);
                }
                return counter;
你的secretNumber和guess中的每个元素必定是0-9,于是将他放到一个10长度的数组里,记录每个值的数目,最后,根据两个数组的对应值进行累加就好了

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧