leetcode:Merge Sorted Array (合并排好序的数组)
2014-06-12 23:52
447 查看
Question: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 (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m andn respectively.
问题:给两个排好序的数组A和数组B,把B中元素合并到数组B中,假设A有足够的空间可以至少容纳m+n个元素,设计一个算法实现。
思路:这个题比较简单,只需要把数组A和数组B从后往前依次比较,首先设计一个指针K=m+n-1,表示从后往前逐次赋值的指针,用i和j分别表示数组A和数组B移动的指针,假如数组A中i下标指向的元素大于数组B中J下标指向的元素,则把A中I下标指向的元素赋值给A中K下标指向的元素,反之,同样的道理。
代码设计(C++):
Note:
You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m andn respectively.
问题:给两个排好序的数组A和数组B,把B中元素合并到数组B中,假设A有足够的空间可以至少容纳m+n个元素,设计一个算法实现。
思路:这个题比较简单,只需要把数组A和数组B从后往前依次比较,首先设计一个指针K=m+n-1,表示从后往前逐次赋值的指针,用i和j分别表示数组A和数组B移动的指针,假如数组A中i下标指向的元素大于数组B中J下标指向的元素,则把A中I下标指向的元素赋值给A中K下标指向的元素,反之,同样的道理。
代码设计(C++):
class Solution { public: void merge(int A[], int m, int B[], int n) { if(!A||!B||m<0||n<0) return; int i=m,j=n;//i记录在A中移动的元素指针,j记录在B中移动元素的指针 int k=m+n-1;//记录存储数据的指针 while (i&&j) { if(A[i-1]>=B[j-1]) A[k--]=A[--i]; else A[k--]=B[--j]; } while(i) A[k--]=A[--i]; while(j) A[k--]=B[--j]; } };
相关文章推荐
- leetcode88---Merge Sorted Array(合并有序数组)
- 【leetcode】Merge Sorted Array(合并两个有序数组到其中一个数组中)
- leetcode:Merge Sorted Array(合并两个有序数组到其中一个数组中)【面试算法题】
- Leetcode 88 Merge Sorted Array 合并两个有序数组
- LeetCode 88 Merge Sorted Array(合并排序数组)(*)
- 【LeetCode】Merge Sorted Array ---合并数组
- leetcode Merge Sorted Array 合并有序数组
- LeetCode Merge Sorted Array(合并有序数组)
- [LeetCode] Merge Sorted Array 合并两个有序数组
- 【LeetCode】- Merge Sorted Array (合并有序数组).
- [leetcode]Merge Sorted Array (两个有序数组的合并 C语言实现)
- [Leetcode] merge sorted array 合并数组
- LeetCode Merge Sorted Array 合并已排序的数组
- 【LeetCode-面试算法经典-Java实现】【088-Merge Sorted Array(合并排序数组)】
- [LeetCode]Merge Sorted Array(合并两个有序的数组)
- LeetCode-88:Merge Sorted Array (合并两排序数组)
- [LeetCode-88] Merge Sorted Array(合并有序数组)
- LeetCode OJ 之 Merge Sorted Array (合并已排好序的数组)
- LintCode Merge Sorted ArrayII 合并排序数组 II
- LeetCode | Merge Sorted Array(归并有序数组)