Contar pares con suma dada

Dada una array de enteros y un número ‘suma’, encuentra el número de pares de enteros en la array cuya suma es igual a ‘suma’.

Ejemplos:  

C++

// C++ implementation of simple method to find count of
// pairs with given sum.
#include <bits/stdc++.h>
using namespace std;
 
// Returns number of pairs in arr[0..n-1] with sum equal
// to 'sum'
int getPairsCount(int arr[], int n, int sum)
{
    int count = 0; // Initialize result
 
    // Consider all possible pairs and check their sums
    for (int i = 0; i < n; i++)
        for (int j = i + 1; j < n; j++)
            if (arr[i] + arr[j] == sum)
                count++;
 
    return count;
}
 
// Driver function to test the above function
int main()
{
    int arr[] = { 1, 5, 7, -1, 5 };
    int n = sizeof(arr) / sizeof(arr[0]);
    int sum = 6;
    cout << "Count of pairs is "
         << getPairsCount(arr, n, sum);
    return 0;
}
 
// This code is contributed by Aditya Kumar (adityakumar129)

C

// C implementation of simple method to find count of
// pairs with given sum.
#include <stdio.h>
 
// Returns number of pairs in arr[0..n-1] with sum equal
// to 'sum'
int getPairsCount(int arr[], int n, int sum)
{
    int count = 0; // Initialize result
 
    // Consider all possible pairs and check their sums
    for (int i = 0; i < n; i++)
        for (int j = i + 1; j < n; j++)
            if (arr[i] + arr[j] == sum)
                count++;
 
    return count;
}
 
// Driver function to test the above function
int main()
{
    int arr[] = { 1, 5, 7, -1, 5 };
    int n = sizeof(arr) / sizeof(arr[0]);
    int sum = 6;
    printf("Count of pairs is %d",getPairsCount(arr, n, sum));
    return 0;
}
 
// This code is contributed by Aditya Kumar (adityakumar129)

Java

// Java implementation of simple method to find count of
// pairs with given sum.
public class find {
    public static void main(String args[])
    {
        int[] arr = { 1, 5, 7, -1, 5 };
        int sum = 6;
        getPairsCount(arr, sum);
    }
 
    // Prints number of pairs in arr[0..n-1] with sum equal
    // to 'sum'
    public static void getPairsCount(int[] arr, int sum)
    {
 
        int count = 0; // Initialize result
 
        // Consider all possible pairs and check their sums
        for (int i = 0; i < arr.length; i++)
            for (int j = i + 1; j < arr.length; j++)
                if ((arr[i] + arr[j]) == sum)
                    count++;
 
        System.out.printf("Count of pairs is %d", count);
    }
}
 
// This code is contributed by Aditya Kumar (adityakumar129)

Python3

# Python3 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'
 
 
def getPairsCount(arr, n, sum):
 
    count = 0  # Initialize result
 
    # Consider all possible pairs
    # and check their sums
    for i in range(0, n):
        for j in range(i + 1, n):
            if arr[i] + arr[j] == sum:
                count += 1
 
    return count
 
 
# Driver function
arr = [1, 5, 7, -1, 5]
n = len(arr)
sum = 6
print("Count of pairs is",
      getPairsCount(arr, n, sum))
 
# This code is contributed by Smitha Dinesh Semwal

C#

// C# implementation of simple
// method to find count of
// pairs with given sum.
using System;
 
class GFG {
    public static void getPairsCount(int[] arr, int sum)
    {
 
        int count = 0; // Initialize result
 
        // Consider all possible pairs
        // and check their sums
        for (int i = 0; i < arr.Length; i++)
            for (int j = i + 1; j < arr.Length; j++)
                if ((arr[i] + arr[j]) == sum)
                    count++;
 
        Console.WriteLine("Count of pairs is " + count);
    }
 
    // Driver Code
    static public void Main()
    {
        int[] arr = { 1, 5, 7, -1, 5 };
        int sum = 6;
        getPairsCount(arr, sum);
    }
}
 
// This code is contributed
// by Sach_Code

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.
?>

Javascript

<script>
 
// Javascript 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)
{
    let count = 0; // Initialize result
 
    // Consider all possible pairs and check their sums
    for (let i = 0; i < n; i++)
        for (let j = i + 1; j < n; j++)
            if (arr[i] + arr[j] == sum)
                count++;
 
    return count;
}
 
// Driver function to test the above function
    let arr = [ 1, 5, 7, -1, 5 ];
    let n = arr.length;
    let sum = 6;
    document.write("Count of pairs is "
        + getPairsCount(arr, n, sum));
     
// This code is contributed by Mayank Tyagi
 
</script>

C++

// C++ code to implement the approach
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the count of pairs
int getPairsCount(int arr[], int n, int k)
{
    sort(arr, arr + n);
    int x = 0, c = 0, y, z;
    for (int i = 0; i < n - 1; i++) {
        x = k - arr[i];
       
        // Lower bound from i+1
        int y = lower_bound(arr + i + 1,
                            arr + n, x) - arr;
         
        // Upper bound from i+1
        int z = upper_bound(arr + i + 1,
                            arr + n, x) - arr;
        c = c + z - y;
    }
    return c;
}
 
// Driver code
int main()
{
    int arr[] = { 1, 5, 7, -1, 5 };
    int n = sizeof(arr) / sizeof(arr[0]);
    int k = 6;
   
    // Function call
    cout << "Count of pairs is "
         << getPairsCount(arr, n, k);
    return 0;
}

Python3

# Python code to implement the approach
import bisect
 
# Function to find the count of pairs
def getPairsCount(arr,n,k):
    arr.sort()
    x,c=0,0
    for i in range(n-1):
        x=k-arr[i]
         
        # Lower bound from i+1
        y = bisect.bisect_left(arr,x,i+1,n)
         
        # Upper bound from i+1
        z = bisect.bisect(arr,x,i+1,n)
        c=c+z-y
    return c
         
# Driver function
arr = [1, 5, 7, -1, 5]
n = len(arr)
k = 6
 
# Function call
print("Count of pairs is",getPairsCount(arr, n, k))
 
# This code is contributed by Pushpesh Raj

C++

// C++ implementation of simple method to find count of
// pairs with given sum.
#include <bits/stdc++.h>
using namespace std;
 
// Returns number of pairs in arr[0..n-1] with sum equal
// to 'sum'
int getPairsCount(int arr[], int n, int sum)
{
    unordered_map<int, int> m;
 
    // Store counts of all elements in map m
    for (int i = 0; i < n; i++)
        m[arr[i]]++;
 
    int twice_count = 0;
 
    // iterate through each element and increment the
    // count (Notice that every pair is counted twice)
    for (int i = 0; i < n; i++) {
        twice_count += m[sum - arr[i]];
 
        // if (arr[i], arr[i]) pair satisfies the condition,
        // then we need to ensure that the count is
        // decreased by one such that the (arr[i], arr[i])
        // pair is not considered
        if (sum - arr[i] == arr[i])
            twice_count--;
    }
 
    // return the half of twice_count
    return twice_count / 2;
}
 
// Driver function to test the above function
int main()
{
    int arr[] = { 1, 5, 7, -1, 5 };
    int n = sizeof(arr) / sizeof(arr[0]);
    int sum = 6;
    cout << "Count of pairs is "
         << getPairsCount(arr, n, sum);
    return 0;
}

Java

/* Java implementation of simple method to find count of
pairs with given sum*/
 
import java.util.HashMap;
 
class Test {
    static int arr[] = new int[] { 1, 5, 7, -1, 5 };
 
    // Returns number of pairs in arr[0..n-1] with sum equal
    // to 'sum'
    static int getPairsCount(int n, int sum)
    {
        HashMap<Integer, Integer> hm = new HashMap<>();
 
        // Store counts of all elements in map hm
        for (int i = 0; i < n; i++) {
 
            // initializing value to 0, if key not found
            if (!hm.containsKey(arr[i]))
                hm.put(arr[i], 0);
 
            hm.put(arr[i], hm.get(arr[i]) + 1);
        }
        int twice_count = 0;
 
        // iterate through each element and increment the
        // count (Notice that every pair is counted twice)
        for (int i = 0; i < n; i++) {
            if (hm.get(sum - arr[i]) != null)
                twice_count += hm.get(sum - arr[i]);
 
            // if (arr[i], arr[i]) pair satisfies the
            // condition, then we need to ensure that the
            // count is decreased by one such that the
            // (arr[i], arr[i]) pair is not considered
            if (sum - arr[i] == arr[i])
                twice_count--;
        }
 
        // return the half of twice_count
        return twice_count / 2;
    }
 
    // Driver method to test the above function
    public static void main(String[] args)
    {
 
        int sum = 6;
        System.out.println(
            "Count of pairs is "
            + getPairsCount(arr.length, sum));
    }
}
// This code is contributed by Gaurav Miglani

Python3

# Python 3 implementation of simple method
# to find count of pairs with given sum.
import sys
 
# Returns number of pairs in arr[0..n-1]
# with sum equal to 'sum'
 
 
def getPairsCount(arr, n, sum):
 
    m = [0] * 1000
 
    # Store counts of all elements in map m
    for i in range(0, n):
        m[arr[i]] += 1
 
    twice_count = 0
 
    # Iterate through each element and increment
    # the count (Notice that every pair is
    # counted twice)
    for i in range(0, n):
 
        twice_count += m[sum - arr[i]]
 
        # if (arr[i], arr[i]) pair satisfies the
        # condition, then we need to ensure that
        # the count is  decreased by one such
        # that the (arr[i], arr[i]) pair is not
        # considered
        if (sum - arr[i] == arr[i]):
            twice_count -= 1
 
    # return the half of twice_count
    return int(twice_count / 2)
 
 
# Driver function
arr = [1, 5, 7, -1, 5]
n = len(arr)
sum = 6
 
print("Count of pairs is", getPairsCount(arr,
                                         n, sum))
 
# This code is contributed by
# Smitha Dinesh Semwal

C#

// C# implementation of simple method to
// find count of pairs with given sum
using System;
using System.Collections.Generic;
 
class GFG {
    public static int[] arr = new int[] { 1, 5, 7, -1, 5 };
 
    // Returns number of pairs in arr[0..n-1]
    // with sum equal to 'sum'
    public static int getPairsCount(int n, int sum)
    {
        Dictionary<int, int> hm
            = new Dictionary<int, int>();
 
        // Store counts of all elements
        // in map hm
        for (int i = 0; i < n; i++) {
 
            // initializing value to 0,
            // if key not found
            if (!hm.ContainsKey(arr[i])) {
                hm[arr[i]] = 0;
            }
 
            hm[arr[i]] = hm[arr[i]] + 1;
        }
        int twice_count = 0;
 
        // iterate through each element and
        // increment the count (Notice that
        // every pair is counted twice)
        for (int i = 0; i < n; i++) {
            if (hm[sum - arr[i]] != 0) {
                twice_count += hm[sum - arr[i]];
            }
 
            // if (arr[i], arr[i]) pair satisfies
            // the condition, then we need to ensure
            // that the count is decreased by one
            // such that the (arr[i], arr[i])
            // pair is not considered
            if (sum - arr[i] == arr[i]) {
                twice_count--;
            }
        }
 
        // return the half of twice_count
        return twice_count / 2;
    }
 
    // Driver Code
    public static void Main(string[] args)
    {
        int sum = 6;
        Console.WriteLine("Count of pairs is "
                          + getPairsCount(arr.Length, sum));
    }
}
 
// This code is contributed by Shrikant13

Javascript

<script>
/* javascript implementation of simple method to find count of
pairs with given sum*/
    var arr = [ 1, 5, 7, -1, 5 ];
 
    // Returns number of pairs in arr[0..n-1] with sum equal
    // to 'sum'
    function getPairsCount(n , sum) {
        var hm = new Map();
 
        // Store counts of all elements in map hm
        for (var i = 0; i < n; i++) {
 
            // initializing value to 0, if key not found
            if (!hm.has(arr[i]))
                hm.set(arr[i], 0);
 
            hm.set(arr[i], hm.get(arr[i]) + 1);
        }
        var twice_count = 0;
 
        // iterate through each element and increment the
        // count (Notice that every pair is counted twice)
        for (i = 0; i < n; i++) {
            if (hm.get(sum - arr[i]) != null)
                twice_count += hm.get(sum - arr[i]);
 
            // if (arr[i], arr[i]) pair satisfies the
            // condition, then we need to ensure that the
            // count is decreased by one such that the
            // (arr[i], arr[i]) pair is not considered
            if (sum - arr[i] == arr[i])
                twice_count--;
        }
 
        // return the half of twice_count
        return twice_count / 2;
    }
 
    // Driver method to test the above function
        var sum = 6;
        document.write("Count of pairs is " + getPairsCount(arr.length, sum));
 
// This code is contributed by umadevi9616
</script>

C++

// C++ implementation of simple method to find count of
// pairs with given sum.
#include <bits/stdc++.h>
using namespace std;
 
// Returns number of pairs in arr[0..n-1] with sum equal
// to 'sum'
int getPairsCount(int arr[], int n, int k)
{
    unordered_map<int, int> m;
    int count = 0;
    for (int i = 0; i < n; i++) {
        if (m.find(k - arr[i]) != m.end()) {
            count += m[k - arr[i]];
        }
        m[arr[i]]++;
    }
    return count;
}
 
// Driver function to test the above function
int main()
{
    int arr[] = { 1, 5, 7, -1, 5};
    int n = sizeof(arr) / sizeof(arr[0]);
    int sum = 6;
    cout << "Count of pairs is "
         << getPairsCount(arr, n, sum);
    return 0;
}

Java

// Java implementation of simple method to find count of
// pairs with given sum.
import java.util.*;
 
class GFG{
 
// Returns number of pairs in arr[0..n-1] with sum equal
// to 'sum'
static int getPairsCount(int arr[], int n, int k)
{
    HashMap<Integer,Integer> m = new HashMap<>();
    int count = 0;
    for (int i = 0; i < n; i++) {
        if (m.containsKey(k - arr[i])) {
            count += m.get(k - arr[i]);
        }
        if(m.containsKey(arr[i])){
            m.put(arr[i], m.get(arr[i])+1);
        }
        else{
            m.put(arr[i], 1);
        }
    }
    return count;
}
 
// Driver function to test the above function
public static void main(String[] args)
{
    int arr[] = { 1, 5, 7, -1, 5};
    int n = arr.length;
    int sum = 6;
    System.out.print("Count of pairs is "
         + getPairsCount(arr, n, sum));
}
}
 
// This code is contributed by umadevi9616

Python3

# Python 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'
def getPairsCount(arr, n, sum):
  unordered_map = {}
  count = 0
  for i in range(n):
    if sum - arr[i] in unordered_map:
      count += unordered_map[sum - arr[i]]
    if arr[i] in unordered_map:
      unordered_map[arr[i]] += 1
    else:
      unordered_map[arr[i]] = 1
  return count
 
# Driver code
arr = [1, 5, 7, -1, 5]
n = len(arr)
sum = 6
print('Count of pairs is', getPairsCount(arr, n, sum))
 
# This code is contributed by Manish Thapa

C#

// C# implementation of simple method to find count of
// pairs with given sum.
using System;
using System.Collections.Generic;
 
public class GFG {
 
    // Returns number of pairs in arr[0..n-1] with sum equal
    // to 'sum'
    static int getPairsCount(int []arr, int n, int k) {
        Dictionary<int, int> m = new Dictionary<int, int>();
        int count = 0;
        for (int i = 0; i < n; i++) {
            if (m.ContainsKey(k - arr[i])) {
                count += m[k - arr[i]];
            }
            if (m.ContainsKey(arr[i])) {
                m[arr[i]] = m[arr[i]] + 1;
            } else {
                m.Add(arr[i], 1);
            }
        }
        return count;
    }
 
    // Driver function to test the above function
    public static void Main(String[] args) {
        int []arr = { 1, 5, 7, -1, 5 };
        int n = arr.Length;
        int sum = 6;
        Console.Write("Count of pairs is " + getPairsCount(arr, n, sum));
    }
}
 
// This code is contributed by umadevi9616

Javascript

<script>
// javascript 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 , k) {
        var m = new Map();
        var count = 0;
        for (var i = 0; i < n; i++) {
            if (m.has(k - arr[i])) {
                count += m.get(k - arr[i]);
            }
            if (m.has(arr[i])) {
                m.set(arr[i], m.get(arr[i]) + 1);
            } else {
                m.set(arr[i], 1);
            }
        }
        return count;
    }
 
    // Driver function to test the above function
        var arr = [ 1, 5, 7, -1, 5 ];
        var n = arr.length;
        var sum = 6;
        document.write("Count of pairs is " + getPairsCount(arr, n, sum));
 
// This code is contributed by umadevi9616
</script>

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *