【LeetCode】088.Merge Sorted Array

来源:互联网 发布:重庆双诚网络是培 编辑:程序博客网 时间:2024/06/07 07:58

题目:

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 mand n respectively.

解答:

依次遍历A和B,取小的值放入新数组。最后把新数组复制给A。

最后复制步骤有个坑,不能用A=temp,不然,当A为空时会出错!

代码:

public class Solution {    public void merge(int A[], int m, int B[], int n) {int[] temp = new int[m+n];int i=0,j=0,k=0; for(;i<m && j<n;k++){if(A[i] <= B[j]){temp[k] = A[i];i++;} else {temp[k] = B[j];j++;}}for(;i<m;i++){temp[k] = A[i];k++;}for(;j<n;j++){temp[k] = B[j];k++;}for(i=0;i<m+n;i++){A[i] = temp[i];}}}


0 0
原创粉丝点击