PROBLEM 54: Sum of Middle Elements of two sorted arrays
(For best view experience, view in windows version)
Problem Reference : GeeksForGeeks
Author : Ajay ZadDate : 14/04/2023
Given 2 sorted arrays Ar1 and Ar2 of size N each. Merge the given arrays and find the sum of the two middle elements of the merged array.
Example 1:
Input:
N = 5
Ar1[] = {1, 2, 4, 6, 10}
Ar2[] = {4, 5, 6, 9, 12}
Output: 11
Explanation: The merged array looks like
{1,2,4,4,5,6,6,9,10,12}. Sum of middle
elements is 11 (5 + 6).
Example 2:
Input:
N = 5
Ar1[] = {1, 12, 15, 26, 38}
Ar2[] = {2, 13, 17, 30, 45}
Output: 32
Explanation: The merged array looks like
{1, 2, 12, 13, 15, 17, 26, 30, 38, 45}
sum of middle elements is 32 (15 + 17).
SOLUTION:
class Solution:
def findMidSum(self, ar1, ar2, n):
# code here
ar1.extend(ar2)
ar1.sort()
sum = ar1[n-1] + ar1[n]
return sum
if __name__ == "__main__":
tc=int(input())
while tc > 0:
n=int(input())
ar1=list(map(int, input().strip().split()))
ar2=list(map(int, input().strip().split()))
ob = Solution()
ans = ob.findMidSum(ar1, ar2, n)
print(ans)
tc=tc-1
Your Task:
You don't need to read input or print anything. Your task is to complete the function findMidSum() which takes ar1, ar2 and n as input parameters and returns the sum of middle elements.
Expected Time Complexity: O(log N)
Expected Auxiliary Space: O(1)
Constraints:
1 <= N <= 103
1 <= Ar1[i] <= 106
1 <= Ar2[i] <= 106
Given 2 sorted arrays Ar1 and Ar2 of size N each. Merge the given arrays and find the sum of the two middle elements of the merged array.
Example 1:
Input:
N = 5
Ar1[] = {1, 2, 4, 6, 10}
Ar2[] = {4, 5, 6, 9, 12}
Output: 11
Explanation: The merged array looks like
{1,2,4,4,5,6,6,9,10,12}. Sum of middle
elements is 11 (5 + 6).
Example 2:
Input:
N = 5
Ar1[] = {1, 12, 15, 26, 38}
Ar2[] = {2, 13, 17, 30, 45}
Output: 32
Explanation: The merged array looks like
{1, 2, 12, 13, 15, 17, 26, 30, 38, 45}
sum of middle elements is 32 (15 + 17).
SOLUTION:
class Solution:
def findMidSum(self, ar1, ar2, n): # code here ar1.extend(ar2) ar1.sort() sum = ar1[n-1] + ar1[n] return sum if __name__ == "__main__": tc=int(input()) while tc > 0: n=int(input()) ar1=list(map(int, input().strip().split())) ar2=list(map(int, input().strip().split())) ob = Solution() ans = ob.findMidSum(ar1, ar2, n) print(ans) tc=tc-1
Your Task:
You don't need to read input or print anything. Your task is to complete the function findMidSum() which takes ar1, ar2 and n as input parameters and returns the sum of middle elements.
Expected Time Complexity: O(log N)
Expected Auxiliary Space: O(1)
Constraints:
1 <= N <= 103
1 <= Ar1[i] <= 106
1 <= Ar2[i] <= 106
No comments:
Post a Comment