码迷,mamicode.com
首页 > 其他好文 > 详细

Merge Sorted Array

时间:2015-05-19 22:36:53      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:c++   c语言   

Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note:

You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The number of elements initialized in nums1 and nums2 are m and n respectively.

很容易的水题,就是需要注意分三种情况。代码如下:

void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) 
{
	//i指向合并数组中最大的数应该存放的位置
	int i=m+n-1;
	//j指向nums1的最大的数
	int j=m-1;
	//k指向nums2的最大的数
	int k=n-1;
	while(i>=0)
	{
		if (j>=0&&k>=0)
		{
			if (nums2[k]>nums1[j])
			{
				nums1[i]=nums2[k];
				k--;
			}
			else
			{
				nums1[i]=nums1[j];
				j--;
			}	
		}
		else if (j>=0)
		{
			nums1[i]=nums1[j];
			j--;
		}
		else if (k>=0)
		{
			nums1[i]=nums2[k];
			k--;
		}
		i--;	
	}
}


Merge Sorted Array

标签:c++   c语言   

原文地址:http://blog.csdn.net/lsh_2013/article/details/45850785

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!