Created
March 2, 2025 02:49
-
-
Save SuryaPratapK/1630352f329e9a133753174fb9c220a5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Solution { | |
public: | |
vector<vector<int>> mergeArrays(vector<vector<int>>& nums1, vector<vector<int>>& nums2) { | |
vector<vector<int>> res; | |
int p1=0; | |
int p2=0; | |
int m=nums1.size(); | |
int n=nums2.size(); | |
while(p1<m and p2<n){ | |
if(nums1[p1][0]==nums2[p2][0]){ | |
res.push_back(nums1[p1]); | |
res.back()[1] += nums2[p2][1]; | |
p1++; | |
p2++; | |
}else if(nums1[p1][0]<nums2[p2][0]){ | |
res.push_back(nums1[p1]); | |
p1++; | |
}else{ | |
res.push_back(nums2[p2]); | |
p2++; | |
} | |
} | |
//Fill leftover from nums1 | |
while(p1<m){ | |
res.push_back(nums1[p1]); | |
p1++; | |
} | |
//Fill leftover from nums2 | |
while(p2<n){ | |
res.push_back(nums2[p2]); | |
p2++; | |
} | |
return res; | |
} | |
}; | |
/* | |
//JAVA | |
import java.util.ArrayList; | |
import java.util.List; | |
class Solution { | |
public int[][] mergeArrays(int[][] nums1, int[][] nums2) { | |
List<int[]> res = new ArrayList<>(); | |
int p1 = 0, p2 = 0; | |
int m = nums1.length, n = nums2.length; | |
while (p1 < m && p2 < n) { | |
if (nums1[p1][0] == nums2[p2][0]) { | |
res.add(new int[]{nums1[p1][0], nums1[p1][1] + nums2[p2][1]}); | |
p1++; | |
p2++; | |
} else if (nums1[p1][0] < nums2[p2][0]) { | |
res.add(nums1[p1]); | |
p1++; | |
} else { | |
res.add(nums2[p2]); | |
p2++; | |
} | |
} | |
// Fill leftover from nums1 | |
while (p1 < m) { | |
res.add(nums1[p1]); | |
p1++; | |
} | |
// Fill leftover from nums2 | |
while (p2 < n) { | |
res.add(nums2[p2]); | |
p2++; | |
} | |
// Convert List<int[]> to int[][] | |
int[][] result = new int[res.size()][2]; | |
for (int i = 0; i < res.size(); i++) { | |
result[i] = res.get(i); | |
} | |
return result; | |
} | |
} | |
#Python | |
class Solution: | |
def mergeArrays(self, nums1, nums2): | |
res = [] | |
p1, p2 = 0, 0 | |
m, n = len(nums1), len(nums2) | |
while p1 < m and p2 < n: | |
if nums1[p1][0] == nums2[p2][0]: | |
res.append([nums1[p1][0], nums1[p1][1] + nums2[p2][1]]) | |
p1 += 1 | |
p2 += 1 | |
elif nums1[p1][0] < nums2[p2][0]: | |
res.append(nums1[p1]) | |
p1 += 1 | |
else: | |
res.append(nums2[p2]) | |
p2 += 1 | |
# Fill leftover from nums1 | |
while p1 < m: | |
res.append(nums1[p1]) | |
p1 += 1 | |
# Fill leftover from nums2 | |
while p2 < n: | |
res.append(nums2[p2]) | |
p2 += 1 | |
return res | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment