【题目】:给定一个数组,找出数组内两两组合使得差最大或者最小的组合个数,注意原数组无序且每个数都是正整数
时间复杂度O(nlogn) 空间复杂度O(1)
import java.util.Arrays;
import java.util.Scanner;
public class T3 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = in.nextInt();
}
Arrays.sort(nums);
int max = nums[n-1]-nums[0],min = nums[1] - nums[0];
int res = 0;
int left = 0,right = n-1;
//统计差值最大的组合数
while(left<right) {
if(nums[right]-nums[left]==max){
right--;
res++;
}else if(nums[right]-nums[left]<max){
right = n-1;
left++;
if(left>=right||nums[left]!=nums[0]){
break;