博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode ---- Merge Sorted Array
阅读量:6621 次
发布时间:2019-06-25

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

Problem discription

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

Accpted Code 1 ( use extra space)

1 class Solution { 2 public: 3     void merge(int A[], int m, int B[], int n) { 4         // we use "ai" and "bi" to keep trace  5         // of array A[] and B[] respectively 6         // "ci" holds the number of elements that  7         // has been merged 8         int ai = 0, bi = 0, ci = 0; 9         // create an extra vector of size n+m 10         // to keep the sorted array11         vector
C(n + m);12 while (ci < n + m) {13 // from small to large 14 if (ai < m && (bi >= n || A[ai] <= B[bi])) {15 C[ci++] = A[ai++];16 } else {17 C[ci++] = B[bi++];18 }19 }20 // copy the sorted array from C to A21 for (int i = 0; i < n+m; i++) A[i] = C[i];22 }23 };

Accepted Code (without extra space) Clear & Simple

1 class Solution { 2 public: 3     void merge(int A[], int m, int B[], int n) { 4         // we use "ai", "bi" to iterator A[] and B[]  5         // from the end respectively 6         // since the size of A[] equal to or greater n+m 7         // thus we can use inplace sort by filling A[] 8         // from A[n+m-1] to A[0] 9         int ai = m - 1, bi = n - 1, ci = n + m - 1;10         while (ci >= 0) {11             if (ai >= 0 && (bi < 0 || A[ai] >= B[bi])) {12                 A[ci--] = A[ai--];13             } else {14                 A[ci--] = B[bi--];15             }16         }17     }18 };

 

转载于:https://www.cnblogs.com/Stomach-ache/p/3783411.html

你可能感兴趣的文章
ADHD的应对技术:大脑的Hack和升级
查看>>
阿里云文件存储NAS简介及应用场景
查看>>
“数据结构+算法”视角的Asprova
查看>>
最严新规发布 网络短视频平台该如何降低违规风险? ...
查看>>
云服务器ECS出现速度变慢 以及突然断开怎么办?
查看>>
208亿背后的“秘密”
查看>>
Android系统自带样式(android:theme)解析
查看>>
全志A33开发板Linux内核定时器编程
查看>>
全栈必备 敏捷估点
查看>>
一个爬虫小技巧
查看>>
作为一名合格的JAVA架构师需要点亮哪些技能树?
查看>>
为什么短视频会让人刷不停?背后也许用了这套技术
查看>>
Kubernetes 在知乎上的应用
查看>>
读C#开发实战1200例子记录-2017年8月14日11:20:38获取汉字编码值
查看>>
Fescar 发布 0.3.1 版本, 支持 ZooKeeper 注册中心
查看>>
网站优化中四个常见的优化难题及解决方法!
查看>>
【死磕 Spring】----- IOC 之解析 bean 标签:BeanDefinition
查看>>
Java部署环境搭建(Linux)
查看>>
使用 will-change 来提升浏览器渲染效果
查看>>
Animation总结(差值器和估值器)
查看>>