diff --git a/Basic of Programming/Arrays/Union of 2 array/q.md b/Basic of Programming/Arrays/Union of 2 array/q.md new file mode 100644 index 0000000..f074b89 --- /dev/null +++ b/Basic of Programming/Arrays/Union of 2 array/q.md @@ -0,0 +1,34 @@ +Link +
Given two arrays A and B of size N and M respectively. The task is to find union between these two arrays.
+Union of the two arrays can be defined as the set containing distinct elements from both the arrays. If there are repetitions, then only one occurrence of element should be printed in union.
+
+Input:
+The first line of input contains an integer T denoting the number of test cases. Then T test cases follow. Each test case consist of three lines. The first line of each test case contains two space separated integers N and M, where N is the size of array A and M is the size of array B. The second line of each test case contains N space separated integers denoting elements of array A. The third line of each test case contains M space separated integers denoting elements of array B.
+
+Output:
+Correspoding to each test case, print the count of union elements of the two arrays.
+
+Expected Time Complexity: O(N + M).
+Expected Auxiliary Space: O(N + M).
+
+Constraints:
+1 ≤ T ≤ 100
+1 ≤ N, M ≤ 105
+1 ≤ A[i], B[i] < 105
+
+Example:
+Input:
+2
+5 3
+1 2 3 4 5
+1 2 3
+6 2
+85 25 1 32 54 6
+85 2
+Output:
+5
+7
+
+Explanation:
+Testcase 1: 1, 2, 3, 4 and 5 are the elements which comes in the union set of both arrays.
+Testcase 2: 1 , 2 , 6 , 25 , 32 , 54 and 85 are the elements which comes in the union set of both arrays. 
\ No newline at end of file diff --git a/Basic of Programming/Arrays/Union of 2 array/sol.cpp b/Basic of Programming/Arrays/Union of 2 array/sol.cpp new file mode 100644 index 0000000..283005d --- /dev/null +++ b/Basic of Programming/Arrays/Union of 2 array/sol.cpp @@ -0,0 +1,25 @@ +#include +#include +using namespace std; + +int main() { + //code + int t; + cin>>t; + while(t--){ + int n,m; + cin>>n; + cin>>m; + int arr1[n],arr2[m]; + for(int i=0;i>arr1[i]; + for(int i=0;i>arr2[i]; + + unordered_map mp; + for(int i=0;iMove all negative numbers to beginning and positive to end with constant extra space +

+An array contains both positive and negative numbers in random order. Rearrange the array elements so that all negative numbers appear before all positive numbers. +

+
+Examples : 
+
+Input: -12, 11, -13, -5, 6, -7, 5, -3, -6
+Output: -12 -13 -5 -7 -3 -6 11 6 5
+Note: Order of elements is not important here.
+
\ No newline at end of file diff --git a/Basic of Programming/Arrays/move negative no to left/sol.cpp b/Basic of Programming/Arrays/move negative no to left/sol.cpp new file mode 100644 index 0000000..d2b60be --- /dev/null +++ b/Basic of Programming/Arrays/move negative no to left/sol.cpp @@ -0,0 +1,70 @@ +//quick sort partion approch +#include +#include +using namespace std; +void rearrange(int arr[],int n){ + int j=0; + for(int i=0;i +#include +using namespace std; +void rearrange(int arr[],int n){ + int i=0, j=n-1; + while(i0)j--; + + if(arr[i]>0 && arr[j]<0){ + int temp=arr[i]; + arr[i]=arr[j]; + arr[j]=temp; + j--; + i++; + } + + } +} + +void printArray(int arr[], int n) +{ + for (int i = 0; i < n; i++) + printf("%d ", arr[i]); +} + +int main() { + + int arr[] = { 1, 2, -3, 4, 5, 6, -7, 9,-8 }; + int n = sizeof(arr) / sizeof(arr[0]); + rearrange(arr, n); + printArray(arr, n); + return 0; +} \ No newline at end of file