首页 > 代码库 > LeetCode (1) Merge Sorted Array
LeetCode (1) Merge Sorted Array
题目:
Given two sorted integer arrays A and B, merge B into A as one sorted array.
Note:
You may assume that A has enough space to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.
刚开始根据归并排序写的多了一个中间数组
void MergeSortArr(int arrA[],int lA,int arrB[],int lB){ int *trr = new int[lA+lB]; int i = 0; int j = 0; int k = 0; while(i < lA && j < lB) { if(arrA[i] <= arrB[j]) trr[k++] = arrA[i++]; else trr[k++] = arrB[j++]; } while(i < lA) trr[k++] = arrA[i++]; while(j < lB) trr[k++] = arrB[j++]; for(i = 0;i<k;++i) { arrA[i] = trr[i]; } delete[] trr; }
参考别人的写的版本从A的后面开始排序
void MergeSortArr1(int arrA[],int lA,int arrB[],int lB){ int *trr = new int[lA+lB]; int i = lA- 1; int j = lB- 1; int k = lA + lB - 1; while (i >= 0 && j >= 0) { if(arrA[i] >= arrB[j]) arrA[k--] = arrA[i--]; else arrA[k--] = arrB[j--]; } while(i >= 0) arrA[k--] = arrA[i--]; while(j >= 0) arrA[k--] = arrB[j--]; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。