Easy-题目39:88. Merge Sorted Array
2016-05-30 20:29
260 查看
题目原文:
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
题目大意:
给出两个排序好的数组nums1和nums2,把nums2合并到nums1里面成为一个有序的数组。
题目分析:
从后往前思考,同时从最后面往前遍历两个数组,每次把nums1和nums2数组中比较大的值依次放入nums1数组的最后面(用一个从n+m-1开始的下标记录),直到nums1或nums2数组有一个扫完,这时把另一个数组的所有数字都从后往前装到nums1里面。
源码:(language:java)
成绩:
0ms,beats 46.18%,众数0ms,53.82%
Cmershen的碎碎念:
有时候一个问题从前往后考虑比较难的时候,可以考虑从后向前思考。
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
题目大意:
给出两个排序好的数组nums1和nums2,把nums2合并到nums1里面成为一个有序的数组。
题目分析:
从后往前思考,同时从最后面往前遍历两个数组,每次把nums1和nums2数组中比较大的值依次放入nums1数组的最后面(用一个从n+m-1开始的下标记录),直到nums1或nums2数组有一个扫完,这时把另一个数组的所有数字都从后往前装到nums1里面。
源码:(language:java)
public class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int len = m + n;//排序后总长度 while(m > 0 && n > 0){ if(nums1[m-1] > nums2[n-1]){ nums1[--len] = nums1[--m]; }else{ nums1[--len] = nums2[--n]; } } //余下的数字 while(m > 0){ nums1[--len] = nums1[--m]; } while(n > 0){ nums1[--len] = nums2[--n]; } } }
成绩:
0ms,beats 46.18%,众数0ms,53.82%
Cmershen的碎碎念:
有时候一个问题从前往后考虑比较难的时候,可以考虑从后向前思考。
相关文章推荐
- 总结
- 偏好设置
- Easy-题目38:160. Intersection of Two Linked Lists
- 常用docker镜像安装
- MyEclipse10配置自动补全/字体大小/行号/背景颜色
- 求和减2的次方
- poj 2286
- Easy-题目37:111. Minimum Depth of Binary Tree
- QT——2、Hello World
- Android 4000 学习记录(十九)-简单的动画清除
- Easy-题目36:112. Path Sum
- .m 文件与.mm文件的区别
- Java代码实现AP向CP侧发送AT指令
- Easy-题目35:9. Palindrome Number
- 反转链表17
- 2016SDAU课程练习三1013
- 搜集整理java中GC的理解
- java 基于jxl解析xls以及解决丢失精度问题
- mysql 锁表解锁
- 十四周项目-项目3-数组类模板