博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode:Merge Sorted Array (合并排好序的数组)
阅读量:7090 次
发布时间:2019-06-28

本文共 1062 字,大约阅读时间需要 3 分钟。

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++):

1 class Solution { 2 public: 3     void merge(int A[], int m, int B[], int n)  4     { 5         if(!A||!B||m<0||n<0) 6             return; 7         int i=m,j=n;//i记录在A中移动的元素指针,j记录在B中移动元素的指针 8         int k=m+n-1;//记录存储数据的指针 9         while (i&&j)10         {11             if(A[i-1]>=B[j-1])12                 A[k--]=A[--i];13             else14                 A[k--]=B[--j];15         }16         while(i)17             A[k--]=A[--i];18         while(j)19             A[k--]=B[--j];20     }21 };

 

转载于:https://www.cnblogs.com/zhaolizhen/p/MergeSortedArray.html

你可能感兴趣的文章
泰为信息科技(上海)有限公司 (高级)网站开发工程师(@CBE Dept.)
查看>>
MVVM Light (Part 4)
查看>>
很强大的 js拖曳效果
查看>>
Document versioning
查看>>
jbpm入门样例
查看>>
Unity3D如何减少安装包大小
查看>>
漫游Kafka设计篇之数据持久化
查看>>
Java提高篇——equals()与hashCode()方法详解
查看>>
oracle用户创建
查看>>
dubbo-admin 管理台的部署
查看>>
ACM进阶计划
查看>>
【转】数据库中查询记录时是否每次只能使用一个索引?
查看>>
C#单例测试(懒汉式双锁保证线程安全)
查看>>
Java知识点总结
查看>>
SQL Server 2000/2005检测存储过程名是否存在,存在删除
查看>>
Windows Hook
查看>>
Javascript分号,加还是不加?
查看>>
TDD中的一些问题
查看>>
[探讨]多版本并发控制(MVCC)在分布式系统中的应用
查看>>
通通玩blend美工(5)——旋转木马,交互性设计
查看>>