Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save SuryaPratapK/1630352f329e9a133753174fb9c220a5 to your computer and use it in GitHub Desktop.
Save SuryaPratapK/1630352f329e9a133753174fb9c220a5 to your computer and use it in GitHub Desktop.
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