我们给了一个数字数组Arr []。目的是计算其差等于所有可能对的最大差的对的数量。计数对(i!= j)和arr [x] -arr [y]是最大可能的。
我们将通过首先找到最大差值(i!= j)来做到这一点。并存储为maxdiff。然后计算所有具有差分= maxdiff的对。
让我们通过示例来理解。
输入− arr [] = {1,2,3,2,4,1,5}
输出-选择最大差值对的方式数量-2
说明-
Here minimum no. is 1 and maximum number is 5, maximum difference =5-1=4 Pair 1 [ 1,2,3,2,4,1,5 ] → (1,5) difference=4 Pair 2 [ 1,2,3,2,4,1,5 ] → (1,5) difference=4 Number of pairs with difference which is maximum=2.
输入− arr [] = {2,4,2,4}
输出-选择最大差值对的方式数量-4
说明-
Here minimum no. is 2 and maximum number is 4, maximum difference =4-2=2 Pair 1 [ 2,4,2,4 ] → (2,4) difference=2 Pair 2 [ 2,4,2,4 ] → (2,4) difference=2 Pair 3 [ 2,4,2,4 ] → (4,2) difference=2 Pair 4 [ 2,4,2,4 ] → (2,4) difference=2 Number of pairs with difference which is maximum=4.
我们采用用随机数初始化的整数数组Arr []。
取一个变量N,它存储Arr []的长度。
函数countPairs(int arr [],int n)接受一个数组,将其长度作为输入,并返回选择差值等于最大差值的对的方式。
将初始变量计数设为0,以获取路数。
将变量diff作为每对的差。
将maxdiff变量作为所有对的最大差。
从数组中找到最大值和最小值,分别存储在maxx和mini中
现在maxdiff将是maxx-mini。
对数组中的每个元素使用两个for循环遍历数组。
外循环从0 <= i <n-1,内循环i <j <n
分别计算diff = arr [i] -arr [j]或arr [j] -arr [i]计数。如果diff == maxdiff增量计数,因为这对具有最大差异。
在所有循环结束时,计数将具有满足条件的对总数。
返回计数结果。
#include <bits/stdc++.h> using namespace std; int countWays(int arr[],int n){ int count = 0; int diff; int maxdiff=0; //making minimum as larger than any product in array int mini,maxx; mini=maxx=arr[0]; for (int i = 0; i < n; i++) //find minimum and maximum values{ if(arr[i]<mini) {mini=arr[i];} if(arr[i]>maxx) { maxx=arr[i]; } } maxdiff=maxx-mini; //this is maximum difference //cout<<maxx<<" "<<mini; for (int i = 0; i < n-1; i++){ for (int j = i+1; j < n; j++){ diff=arr[i]-arr[j]; //pair 1 if ( diff==maxdiff ){ count++; //cout<<endl<<"a :"<<arr[i]<<" b :"<<arr[j]; //to print } diff=arr[j]-arr[i]; //pair 2 if ( diff==maxdiff ){ count++; //cout<<endl<<"a :"<<arr[i]<<" b :"<<arr[j]; //to print } } } return count; } int main(){ int Arr[]={ 3, 2, 1, 1, 3 }; int N=5; //length of array cout <<endl<< "No. of ways of choosing pair with maximum difference : "<<countWays(Arr,N); return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
No. of ways of choosing pair with maximum difference : 4