我的解决办法:
题目要求输入的数组不包含重复的数
1、把原数组A逐个元素求绝对值得到数组B
2、将数组B中的元素去重放入map中
3、相反数对数 = A.length - map.size()
出现问题:提交代码提示编译出错。
原因:原来我把以上三步提取出在一个单独方法findOppositeNum中,然后main()调用。
解决:去掉findOppositeNum方法,全部代码都在main中, 提交正确。
代码:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class _201403_1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[] arr = new int[n];
for (int i=0;i<n;i++){
arr[i] = scan.nextInt();
}
for (int i=0;i<n;i++){
arr[i] = Math.abs(arr[i]);
}
Map<Integer,Integer> map = new HashMap<>();
for (int i=0;i<n;i++){
if (!map.containsKey(arr[i])){
map.put(arr[i],0);
}
}
System.out.println(arr.length-map.size());
}
}
``