merge-sorted-array-leetcode-C++
2016-08-29 21:31
363 查看
题目:
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 arem and n respectively.
//思路:为了不另外开辟空间,可以从右向左进行归并,类似与剑指offer中的先计算出末尾元素的位置loc,然后
//进行归并排序
贴上AC代码如下:
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 arem and n respectively.
//思路:为了不另外开辟空间,可以从右向左进行归并,类似与剑指offer中的先计算出末尾元素的位置loc,然后
//进行归并排序
贴上AC代码如下:
class Solution { public: //思路:为了不另外开辟空间,可以从右向左进行归并,类似与剑指offer中的先计算出末尾元素的位置loc,然后 //进行归并排序 void merge(int a[], int m, int b[], int n) { if(n==0) return; if(m==0) { for(int i=0;i<n;i++) a[i]=b[i]; return; } int i=m-1; int j=n-1; int loc=m+n-1; while(i>=0 && j>=0)//保证两个数组都没有归并完成 { if(a[i]>=b[j]) { a[loc--]=a[i--]; } else { a[loc--]=b[j--]; } } //如果最后是剩下的a中元素,则直接返回,如果是B中的元素则需要将元素全部移动到a中 if(j>=0)//注意j可以等于0,因为这时候b中剩下一个元素 { for(int k=0;k<=j;k++) { a[k]=b[k]; } } } };
相关文章推荐
- 【LeetCode-88】Merge Sorted Array(C++)
- Leetcode_merge-sorted-array(updated c++ and python version)
- LeetCode 之 Merge Sorted Array — C++ 实现
- [C++]LeetCode: 10 Merge Sorted Array
- Leetcode_c++: Merge Sorted Array (088)
- 【leetcode c++】88 Merge Sorted Array
- LeetCode 88 — Merge Sorted Array(C++ Java Python)
- leetcode 88 Merge Sorted Array C++
- [leetcode刷题系列]Merge Sorted Array
- Leetcode Merge Sorted Array
- leetcode -- Merge Sorted Array
- leetcode 29: Merge Sorted Array
- 【LeetCode】Merge Sorted Array ---合并数组
- LeetCode-Merge Sorted Array
- [LeetCode] Merge Sorted Array
- leetcode_question_88 Merge Sorted Array
- leetcode:Merge Sorted Array(合并两个有序数组到其中一个数组中)【面试算法题】
- LeetCode - Merge Sorted Array
- LeetCode-Merge Sorted Array
- [LeetCode] Merge Sorted Array