Leetcode-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.

把两个有序数组并在一起,B并入A。

方法是:从后往前遍历,把选出的大数放在最后的位置,依次往前。当A中的数全部放置完成,在把B中的数放进A中。

	public void merge(int A[], int m, int B[], int n) {
		if(m == 0){
			for(int i=0; i<n; i++)
				A[i] = B[i];
		}else{
			int j=m-1;
			int k=n-1;
			int s = m+n-1;
			while(j>=0 && k>=0){
				if(A[j] > B[k])
					A[s--] = A[j--];
				else
					A[s--] = B[k--];
			}
			if(j == -1)
				for(; k>=0; k--){
					A[k]=B[k];
				}
		}
	}

这个题目理应熟记,我相信会考到的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值