088 - Merge Sorted Array

解法

merge sort 的 “merge” step 實作。

程式碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int index_m, index_n;
index_m = index_n = 0;

vector<int> ans;
while(1){
//檢查 nums2 是否還有值 || nums1 <= nums2
if(index_n >= n || (index_m < m && nums1[index_m] <= nums2[index_n])){
ans.push_back(nums1[index_m]);
index_m++;
} //vice versa
else if(index_m >= m || (index_n < n && nums2[index_n] < nums1[index_m])){
ans.push_back(nums2[index_n]);
index_n++;
}

if(index_n >= n && index_m >= m) break;
}

nums1.clear();
for(auto it: ans){
nums1.push_back(it);
}
}

};
  • 版權聲明: 本部落格所有文章除有特別聲明外,均採用 Apache License 2.0 許可協議。轉載請註明出處!
  • © 2020-2024 John Doe
  • Powered by Hexo Theme Ayer
  • PV: UV: