法1:排序后,首尾两个指针
法2:每个数的绝对值如果出现过,flag置为1,如果再次出现,就计数+1
本文采用法1
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int a[] = new int[n];
for(int i = 0;i<n;i++) {
a[i] = sc.nextInt();
}
Arrays.sort(a);
int count = 0;
int i = 0;
int j = n-1;
while(i < j) {
if(a[i] + a[j] == 0) {
count++;
i++;
j--;
}else if(a[i] + a[j] > 0){
j--;
}else {
i++;
}
}
System.out.println(count);
}
}