151 DSA Problem Journey
GAURAV YADAV
1 min read
Q16:Given an array Arr of N positive integers and another number X. Determine whether or not there exist two elements in Arr whose sum is exactly X.
Example :
Input:
N = 6, X = 16
Arr[] = {1, 4, 45, 6, 10, 8}
Output: Yes
Explanation: Arr[3] + Arr[4] = 6 + 10 = 16
Solution:
class Solution{
public:
// Function to check if array has 2 elements
// whose sum is equal to the given value
bool hasArrayTwoCandidates(int arr[], int n, int x) {
// code here
sort(arr,arr+n);
int l=0;
int r=n-1;
while(l<r){
if(arr[l]+arr[r]==x){
return true;
}
else if(arr[l]+arr[r]>x){
r--;
}
else
l++;
}
return false;
}
};
Explantion:
>We have to just return the yes and no so order does not matter so first we sort
the array than traverse the array and try to findout the possbile pair if it is
available then we return true otherwise we return false;
If anyone have better solution so please comment:)
14
Subscribe to my newsletter
Read articles from GAURAV YADAV directly inside your inbox. Subscribe to the newsletter, and don't miss out.
C++cppCpp Tutorial #cpp #guideDSAdsa trainingcodingcoding journeycoding challenge#codenewbiesComputer ScienceProgramming Blogsprogramming languagesLearning Journeylearn coding
Written by
GAURAV YADAV
GAURAV YADAV
Experienced Full Stack Developer with proficiency in comprehensive coding skills, adept at crafting end-to-end solutions.