LeetCode 之 Merge Sorted Array

原创 2013年11月09日 23:45:52

原题:

Given two sorted integer arrays A and B, merge B into A as one sorted array.

合并两个有序的数列前面有一个是链表形式,而这个数组形式的非常相似,只是需要复制罢了。。。。

主要思想:

1 因为需要合并两个数组到A中,因此数组A会增加,从尾部直接考虑可以减少来回移动的时间

2 用一个指针指向新的数组的尾部,分别比较两个现有数组的尾部,大的放进来就ok

3 两个原数组分别用一个指针指向尾部,用于比较,若哪个指针(位置)为负数,说明该数组比较完毕,稍微处理就ok

如图所示:

                     

图  说明

代码如下:

class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        // IMPORTANT: Please reset any member data you declared, as
        // the same Solution instance will be reused for each test case.
        
        //新数组的最后一个位置
        int last = m+n-1;
        //A的最后一个位置
        int indexA = m-1;
        //B的最后一个位置
        int indexB = n-1;
        
        for (int i = 0;i<m+n;i++){
            last = m+n-i-1;
            //两个index都为非负数,说明两个数组都没比较完,将大的放入新数组中
            if(indexA >=0 && indexB >= 0){
                if(A[indexA] > B[indexB]){
                    A[last] = A[indexA];
                    indexA--;
                }
                else{
                    A[last] = B[indexB];
                    indexB--;
                }
            }
            //A数组已经比较完,将B数组剩下的都放进新数组
            else if(indexA < 0){
                A[last] = B[indexB];
                indexB--;
                
            }
            //B数组比较完,直接break,节省时间
            else {
                break;
            }
        }
    }
};



LeetCode ::Merge Sorted Array[最简短代码]

Given two sorted integer arrays A and B, merge B into A as one sorted array. Note: You may assume t...
  • u013195320
  • u013195320
  • 2014年03月29日 23:29
  • 804

LeetCode 88 Merge Sorted Array(合并排序数组)(*)

翻译给定两个排序的整型数组nums1和nums2,将nums2合并到nums1成一个排序数组。批注: 你可以假设nums1中有足够的空间(空间大于或等于m+n)来存放来自nums2的额外元素。 num...
  • NoMasp
  • NoMasp
  • 2016年01月24日 12:06
  • 4146

leetcode笔记:Merge Sorted Array

Merge Sorted Array这道题没有很复杂的算法,只是一个技巧问题。如果单纯得考虑从小到大地将两个数组进行合并的话,每次在num1中插入一个数的话,需要将后面的元素都向后移动一位,这样,整个...
  • liyuefeilong
  • liyuefeilong
  • 2015年07月28日 00:57
  • 1065

LintCode Merge Sorted Array 合并排序数组

合并两个排序的整数数组A和B变成一个新的数组。 Merge two given sorted integer array A and B into a new sorted integer arra...
  • wutingyehe
  • wutingyehe
  • 2015年07月14日 16:00
  • 681

[leetcode-88]Merge Sorted Array(C语言)

问题描述: Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.N...
  • zdavb
  • zdavb
  • 2015年07月11日 21:57
  • 430

LeetCode 之 Merge Sorted Array

原题: Given two sorted integer arrays A and B, merge B into A as one sorted array. 合并两个有序的数列前面有一个是链表...
  • zhao123h
  • zhao123h
  • 2013年11月09日 23:45
  • 636

【LeetCode】Merge Sorted Array

Merge Sorted Array Total Accepted: 9111 Total Submissions: 28906 My Submissions Given two sorted int...
  • u013027996
  • u013027996
  • 2014年03月07日 10:15
  • 631

leetcode 88 Merge Sorted Array

Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: Y...
  • wangyaninglm
  • wangyaninglm
  • 2015年06月24日 22:47
  • 2948

Leetcode_88_Merge Sorted Array

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41631609 通过本文你可能学到的知识为: (1)当我们...
  • pistolove
  • pistolove
  • 2014年11月30日 23:37
  • 1969

Leetcode 88. Merge Sorted Array

原题: Given two sorted integer arrays nums1 and nums2, merge nums2 intonums1 as one sorted array....
  • muche001
  • muche001
  • 2018年02月06日 09:02
  • 2
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode 之 Merge Sorted Array
举报原因:
原因补充:

(最多只允许输入30个字)