Sudo Placement |美丽的一对

给定两个整数数组,其中第一个数组的最大大小较大,第二个数组的最大大小较小。你的任务是找出第一个数组中是否有一对的和在第二个数组中。

null

例如:

Input: 41 5 10 832 20 13Output: 1

方法: 我们有x+y=z。这可以重写为x=z–y。这意味着,我们需要在数组1中找到一个元素x,它是z(第二个数组)–y(第一个数组)的结果。为此,使用散列来跟踪这样的元素x。

C++

// C++ code for finding required pairs
#include <bits/stdc++.h>
using namespace std;
// The function to check if beautiful pair exists
bool pairExists( int arr1[], int m, int arr2[], int n)
{
// Set for hashing
unordered_set< int > s;
// Traversing the first array
for ( int i = 0; i < m; i++) {
// Traversing the second array to check for
// every j corresponding to single i
for ( int j = 0; j < n; j++) {
// x + y = z => x = y - z
if (s.find(arr2[j] - arr1[i]) != s.end())
// if such x exists then we return true
return true ;
}
// hash to make use of it next time
s.insert(arr1[i]);
}
// no pair exists
return false ;
}
// Driver Code
int main()
{
int arr1[] = { 1, 5, 10, 8 };
int arr2[] = { 2, 20, 13 };
// If pair exists then 1 else 0
// 2nd argument as size of first array
// fourth argument as sizeof 2nd array
if (pairExists(arr1, 4, arr2, 3))
cout << 1 << endl;
else
cout << 0 << endl;
return 0;
}


JAVA

// Java code for finding required pairs
import java.util.*;
class GFG
{
// The function to check if beautiful pair exists
static boolean pairExists( int []arr1, int m, int []arr2, int n)
{
// Set for hashing
Set<Integer> s = new HashSet<Integer>();
// Traversing the first array
for ( int i = 0 ; i < m; i++) {
// Traversing the second array to check for
// every j corresponding to single i
for ( int j = 0 ; j < n; j++)
{
// x + y = z => x = y - z
if (s.contains(arr2[j] - arr1[i]))
// if such x exists then we return true
return true ;
}
// hash to make use of it next time
s.add(arr1[i]);
}
// no pair exists
return false ;
}
// Driver Code
public static void main(String []args)
{
int []arr1 = { 1 , 5 , 10 , 8 };
int []arr2 = { 2 , 20 , 13 };
// If pair exists then 1 else 0
// 2nd argument as size of first array
// fourth argument as sizeof 2nd array
if (pairExists(arr1, 4 , arr2, 3 ))
System.out.println( 1 );
else
System.out.println( 0 );
}
// This code is contributed by ihritik
}


Python3

# Python3 code for finding required pairs
from typing import List
# The function to check if beautiful pair exists
def pairExists(arr1: List [ int ], m: int ,
arr2: List [ int ], n: int ) - > bool :
# Set for hashing
s = set ()
# Traversing the first array
for i in range (m):
# Traversing the second array to check for
# every j corresponding to single i
for j in range (n):
# x + y = z => x = y - z
if (arr2[ 2 ] - arr1[ 2 ]) not in s:
# If such x exists then we
# return true
return True
# Hash to make use of it next time
s.add(arr1[i])
# No pair exists
return False
# Driver Code
if __name__ = = "__main__" :
arr1 = [ 1 , 5 , 10 , 8 ]
arr2 = [ 2 , 20 , 13 ]
# If pair exists then 1 else 0
# 2nd argument as size of first array
# fourth argument as sizeof 2nd array
if (pairExists(arr1, 4 , arr2, 3 )):
print ( 1 )
else :
print ( 0 )
# This code is contributed by sanjeev2552


C#

// C# code for finding required pairs
using System;
using System.Collections.Generic;
class GFG
{
// The function to check if
// beautiful pair exists
static bool pairExists( int []arr1,
int m, int []arr2, int n)
{
// Set for hashing
HashSet< int > s = new HashSet< int >();
// Traversing the first array
for ( int i = 0; i < m; i++)
{
// Traversing the second array to check for
// every j corresponding to single i
for ( int j = 0; j < n; j++)
{
// x + y = z => x = y - z
if (s.Contains(arr2[j] - arr1[i]))
// if such x exists then we return true
return true ;
}
// hash to make use of it next time
s.Add(arr1[i]);
}
// no pair exists
return false ;
}
// Driver Code
public static void Main()
{
int []arr1 = { 1, 5, 10, 8 };
int []arr2 = { 2, 20, 13 };
// If pair exists then 1 else 0
// 2nd argument as size of first array
// fourth argument as sizeof 2nd array
if (pairExists(arr1, 4, arr2, 3))
Console.WriteLine(1);
else
Console.WriteLine(0);
}
}
/* This code contributed by PrinciRaj1992 */


Javascript

<script>
// JavaScript code for finding required pairs
// The function to check if beautiful pair exists
function pairExists(arr1, m, arr2, n) {
// Set for hashing
let s = new Set();
// Traversing the first array
for (let i = 0; i < m; i++) {
// Traversing the second array to check for
// every j corresponding to single i
for (let j = 0; j < n; j++) {
// x + y = z => x = y - z
if (s.has(arr2[j] - arr1[i]))
// if such x exists then we return true
return true ;
}
// hash to make use of it next time
s.add(arr1[i]);
}
// no pair exists
return false ;
}
// Driver Code
let arr1 = [1, 5, 10, 8];
let arr2 = [2, 20, 13];
// If pair exists then 1 else 0
// 2nd argument as size of first array
// fourth argument as sizeof 2nd array
if (pairExists(arr1, 4, arr2, 3))
document.write(1 + "<br>" );
else
document.write(0 + "<br>" );
</script>


输出:

1

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享