查找对对于每个测试用例,打印不同对的数量



这是的问题

给定N个数的数组A,求不同对(i,j(的数量,使得j>并且A[i]=A[j]。

输入的第一行包含测试用例T的数量。每个测试用例有两行,第一行是数字N,后面是由N个整数组成的行,这些整数是数组a的元素。

对于每个测试用例,打印不同对的数量。

Constraints
1 <= T <= 10
1 <= N <= 10^6
-10^6 <= A[i] <= 10^6 for 0 <= i < N
SAMPLE INPUT 
2
4
1 2 3 4
3
1 2 1
SAMPLE OUTPUT 
4
4

想要一个简单的java代码解决方案,并解释使用的所有功能和代码

下面是我用这里的一些代码拼凑在一起的东西:

如何使用java在Array中获取用户输入?

这段代码要求用户手动输入一个数组,如果需要的话,您必须实现从某个文件读取数组。

import java.util.*;
public class UserInput
{
public static void main(String[] args)
{
List<String> list = new ArrayList<String>();
Scanner stdin = new Scanner(System.in);
do
{
System.out.println("Current list is " + list);
System.out.println("Add more? (y/n)");
if (stdin.next().startsWith("y"))
{
System.out.println("Enter : ");
list.add(stdin.next());
}
else
{
break;
}
} while (true);
stdin.close();
System.out.println("List is " + list);
String[] arr = list.toArray(new String[0]);

for(int i = 0; i < arr.length; i++)
{
for(int j = i + 1; j < arr.length; j++)
{
if(arr[i].equals(arr[j]))
{
System.out.println("Pair Found! --> i: " + i + " j: " + j);
}
}
}
}
}

最新更新