Java 大神求助

00010110 2021-03-18 09:57:31
package T1;

/*
* 1、考虑元素唯一性问题:给出一个整数集合,假定这些整数存储在数组 A[1…n]中,确定
它们中是否存在两个相等的元素。请设计出一个有效算法来解决这个问题,你的算法的时间
复杂性是多少?

具体要求
输入:输入的第一行是一个正整数 m,表示测试例个数。接下来几行是 m 个测试例的数
据,每个测试例的数据由两行组成,其中第一行为一个正整数 n (n<=500),表示整数序列
的长度,第二行给出整数序列,整数之间用一个空格隔开。
输出:对于每个测试例输出一行,若该组测试例存在两个相等的元素则输出 Yes,否则,
输出No。每个测试例的输出数据用一行表示。
*/

import java.util.Scanner;
public class T1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入测试用例数:");
int m = sc.nextInt();
for(int i=0;i<m;i++) {
System.out.println("请输入数组包含元素数:");
int n = sc.nextInt();
getMessage a = new getMessage(n);
System.out.println("请依次输入数组元素并用空格隔开:");
a.inputArgs(n);
System.out.println("查找是否有相同元素:"+a.search());
System.out.println();
}
sc.close();
}
}

class getMessage{
private int n;
private int args[] = new int [n];
public getMessage(int n) {
this.n = n;
}
public void inputArgs(int n) {
int args[] = new int[n];
Scanner sc = new Scanner(System.in);
for(int i=0;i<n;i++) {
args[i] = sc.nextInt();
}
sc.close();
this.args=args;
}
public void printArgs() {
for (int i=0;i<n;i++) {
System.out.print(this.args[i]+" ");
}
}
public boolean search() {
for(int i=0;i<n-1;i++) {
for(int j=i+1;j<n;j++) {
if(this.args[i]==this.args[j]) {
return true;
}
}
}
return false;
}
}


这段代码为什么只能执行第一次,后面的都执行不了呢?
...全文
68 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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