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