Given an array of integers, and a number ‘sum’, find the number of pairs of integers in the array whose sum is equal to ‘sum’.
Examples:
Input : arr[] = {1, 5, 7, -1}, sum = 6 Output : 2 Pairs with sum 6 are (1, 5) and (7, -1) Input : arr[] = {1, 5, 7, -1, 5}, sum = 6 Output : 3 Pairs with sum 6 are (1, 5), (7, -1) & (1, 5) Input : arr[] = {1, 1, 1, 1}, sum = 2 Output : 6 There are 3! pairs with sum 2. Input : arr[] = {10, 12, 10, 15, -1, 7, 6, 5, 4, 2, 1, 1, 1}, sum = 11 Output : 9
Expected time complexity O(n)
Naive Solution – A simple solution is to traverse each element and check if there’s another number in the array which can be added to it to give sum.
PHP
<?php // PHP implementation of simple // method to find count of // pairs with given sum. // Returns number of pairs in // arr[0..n-1] with sum equal // to 'sum' function getPairsCount( $arr , $n , $sum )
{ // Initialize result
$count = 0;
// Consider all possible pairs
// and check their sums
for ( $i = 0; $i < $n ; $i ++)
for ( $j = $i + 1; $j < $n ; $j ++)
if ( $arr [ $i ] + $arr [ $j ] == $sum )
$count ++;
return $count ;
} // Driver Code
$arr = array (1, 5, 7, -1, 5) ;
$n = sizeof( $arr );
$sum = 6;
echo "Count of pairs is "
, getPairsCount( $arr , $n , $sum );
// This code is contributed by nitin mittal. ?> |
Output
Count of pairs is 3
Time Complexity: O(n2)
Auxiliary Space: O(1)