①英文题目

Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

Note:

The number of elements initialized in nums1 and nums2 are m and n respectively.
You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2.
Example:

Input:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6], n = 3

Output: [1,2,2,3,5,6]

②中文题目:

给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。

说明:

初始化 nums1 和 nums2 的元素数量分别为 m 和 n。
你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。
示例:

输入:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6], n = 3

输出: [1,2,2,3,5,6]

③思路:这个题,倒序比顺序好做一些。首先想好,用3个变量来索引,i,j,k分别指向num1的末位、nums2的末位,混合后的数组的末位。每次处理完之后,都要减减1下。但其中要注意,只有参与了移动的索引才会减减1下。

用while循环,i和j都大于等于0为条件。 两个数组元素相比,谁大就把谁赋值给混合数组的末位。

另外,当i已经自减为负数而j还为正数(也就是说nums2数组长度比nums1长些)时,直接把剩余还没分配走的nums2的值,一一赋给混合数组的前几位。

由于我就是把nums1当成混合后的数组,所以,当j自减为负数而i还是正数的时候,不用做任何处理了,也就是说,我的代码里的17-21行可以删除掉(我代码里已经写出来方便举例子)。

④代码:

 class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int i=m-1;
int j=n-1;
int k=m+n-1;
while(i>=0 && j>=0){
if(nums1[i]>=nums2[j])
nums1[k--]=nums1[i--];
else
nums1[k--]=nums2[j--];
}
if( j>=0 ){
for(int p=0 ; p<j+1; p++){
nums1[p] = nums2[p];
}
}
// if( i>0 ){
// for(int p=0 ; p<i+1;p++){
// nums1[p]= nums1[p];
// }
//}
}
}

最新文章

  1. 深入理解java内存模型系列文章
  2. UILabel顶部对齐解决方法(转载)
  3. SqlServer获取表结构语句
  4. [原创]一种简单的cocos2d-x动态更新方案
  5. Project Server 2013两个权限模型介绍
  6. sql查询语句心得
  7. Python获取并修改hosts
  8. [webapi] 如何在查看api时 显示api的说明
  9. oracle ebs 分类账与法人主体对应关系
  10. Ubuntu将新增磁盘挂载到home下
  11. php中的数组遍历的几种方式
  12. wineshark分析抓取本地回环包
  13. 使用 Go-Ethereum 1.7.2搭建以太坊私有链
  14. Excel 当前行高亮
  15. pandas聚合aggregate
  16. python string.py 源码分析 二:capwords
  17. 分布式的CAP理论
  18. Fiddler拦截并修改移动端请求
  19. 4.keras实现--&gt;生成式深度学习之DeepDream
  20. 团队作业4--第一项目冲刺3(Aplpha)

热门文章

  1. PHP array_udiff_uassoc
  2. Sieve of Eratosthenes时间复杂度的感性证明
  3. (20)ASP.NET Core EF创建模型(必需属性和可选属性、最大长度、并发标记、阴影属性)
  4. opensuse下安装redis
  5. ESP8266开发之旅 网络篇⑫ 域名服务——ESP8266mDNS库
  6. 机器学习回顾篇(8):CART决策树算法
  7. JSP HTML 各种 乱码 解决方法|jsp include html乱码|include 乱码|MyEclipse 中文乱码
  8. js奥义:原型与原型链(2)
  9. python的多线程和多进程(一)
  10. vsftpd超实用技巧详解