LeetCode 88. Merge Sorted Array(合并有序数组)
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note:
You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The number of elements initialized in nums1 and nums2 are m and n respectively.
题目标签:Array
题目给了我们两个有序数组,让我们merge sort,而且nums1 有足够的空间让我们存放 两个array。既然是要放到nums1里,那么我们如果比较nums1 和nums2 的数字,如果是nums2 的数字小的话,就要把nums2 的数字存放进nums1,我们还要另外存放nums1的数字,这样就需要额外space了。所以,我们可以从nums1的end 开始遍历回start, 然后设两个pointers 分别指向 两个array的最后一个数字,这样可以比完大小后直接存放进nums1。注意最后还需要检查一下,nums2是否还有剩下的数字,有的话都需要存进nums1。
Java Solution:
Runtime beats 38.77%
完成日期:04/05/2017
关键词:Array
关键点:Merge sort;Two Pointers;从end遍历回start
public class Solution
{
public void merge(int[] nums1, int m, int[] nums2, int n)
{
/* if m = 0, meaning nums1's elements are all done. Need one more while loop after this
to take care of left elements of nums2.
if n = 0, meaning nums2's elements are done, the rest of nums1's elements are in the
right place. No need to take care of them.
*/
while(m > 0 && n >0)
{
if(nums1[m-1] > nums2[n-1]) // if number 1 > number 2
{
// save nums1's element into nums1's last "empty" spot.
nums1[m+n-1] = nums1[m-1];
m--;
}
else // if number 1 <= number 2
{
// save nums2's element into nums1's last "empty" spot
nums1[m+n-1] = nums2[n-1];
n--;
}
} // check if nums2's elements are not finished.
while(n > 0)
{
// save nums2's rest elements into nums1
nums1[m+n-1] = nums2[n-1];
n--;
}
}
}
参考资料:
http://www.cnblogs.com/springfor/p/3872640.html
LeetCode 算法题目列表 - LeetCode Algorithms Questions List
LeetCode 88. Merge Sorted Array(合并有序数组)的更多相关文章
- [LeetCode] 88. Merge Sorted Array 合并有序数组
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: T ...
- [leetcode]88. Merge Sorted Array归并有序数组
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: T ...
- Leetcode#88. Merge Sorted Array(合并两个有序数组)
题目描述 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 m ...
- [LeetCode] 88. Merge Sorted Array 混合插入有序数组
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: T ...
- Leetcode 88 Merge Sorted Array STL
合并有序数组 时间复杂度O(m+n) 该算法来自各种算法与数据结构书,写得已经烂得不能再烂了,这个应该是最短的代码了吧,不知如何归类 class Solution { public: void mer ...
- 【LeetCode】Merge Sorted Array(合并两个有序数组)
这道题是LeetCode里的第88道题. 题目描述: 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nu ...
- LeetCode 088 Merge Sorted Array 合并两个有序数组
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.Note:You ...
- leetCode 88.Merge Sorted Array (合并排序数组) 解题思路和方法
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: Y ...
- LeetCode 88 Merge Sorted Array
Problem: Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array ...
随机推荐
- 一、React Native 搭建开发环境(1)(Mac OS - IOS项目)
React Native是Facebook推出的一个开发IOS和安卓APP的技术.至于更多的详情,这里不再描述,大家可以自行百度它的定义. 目的: 由于我想在一台电脑上同时开发IOS和Android两 ...
- python之面向对象2
一.类命名空间与对象.实例的命名空间 常见一个类就会创建一个类的名称空间,用来储存类中定义的所有名字,这些名字成为类的属性 而类有两种属性:静态属性和动态属性 静态属性就是直接在类中定义的变量 ...
- [01] File类
1.IO概念 File类是java.io包中一个很重要的类,这里的io,就是指 Input/Output,所以在看File类之前,先提一下所谓的IO概念. I/O(Input/Output),即输入/ ...
- 简单实用的CSS网页布局中文排版技巧
由于汉字的特殊性,在css网页布局中,中文排版有别于英文排版.排版是一个麻烦的问题,小编认为,作为一个优秀的网页设计师和网页制作人员,掌握一些简单的中文排版技巧是不可或缺的,所以今天特意总结了几个简单 ...
- Android Framework 初探
最近工作任务不忙,学习一下Android Framework方面的知识. 一.介绍,是什么 Android的Framework是直接应用之下的一层,叫做应用程序框架层.这一层是核心应用程序所使用的AP ...
- TCP/IP(三)数据链路层~2
一.局域网 1.1.局域网和以太网的区别和联系 局域网:前面已经介绍了,其实就是学校里面.各个大的公司里,自己组件的一个小型网络,这种就属于局域网. 以太网:以太网(Ethernet)指的是由Xero ...
- 关于select的一个错误---属性选择器
错误: jquery 获取下拉框 text='1'的 option 的value 属性值 我写的var t= $("#selectID option[text='1']).val() ; ...
- 简单说明CGI是什么
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- http://codeforces.com/contest/834
A. The Useless Toy time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- Python实战之用类的静态方法实现登录验证
#!usr/bin/env Python3 # -*-coding:utf-8-*- __author__="William" #define a class,just to le ...