LeetCode 88. Merge Sorted Array 归并的过程
来源:互联网 发布:外国 女友 知乎 编辑:程序博客网 时间:2024/05/21 20:30
Given two sorted integer arrays nums1 and nums2, merge nums2 intonums1 as one sorted array.
题意:对于有序的两个数组nums1,nums2进行归并到nums1里保持其有序性
1.按照归并排序进行归并的过程,需要单独开辟一块空间O(n),时间复杂度O(n)
2.在进行归并的过程,需要注意越界的情况,当其中之一的数组已经归并完毕,剩余的元素就是另外一个数组的元素
class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { vector<int> temp1 = nums1; for(int i=0,j=0,k=0;i<m+n;i++) { if(j>=m) { nums1[i] = nums2[k]; k++; } else if(k>=n) { nums1[i]=temp1[j]; j++; } else if(temp1[j]<=nums2[k]) { nums1[i]=temp1[j]; j++; } else { nums1[i]=nums2[k]; k++; } } }};
优化1:
1.上述代码使用了空间复杂度O(n),是因为忽略了一个条件,nums1的长度为(n+m)
2.从后往前赋值,比较归并
class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { int i = m - 1, j = n - 1, tar = m + n - 1; while (j >= 0) { nums1[tar--] = i >= 0 && nums1[i] > nums2[j] ? nums1[i--] : nums2[j--]; } }};
0 0
- LeetCode 88. Merge Sorted Array 归并的过程
- [LeetCode] Merge Sorted Array 归并排序数组
- LeetCode-88-Merge Sorted Array(归并)-Easy
- (LeetCode)Merge Sorted Array --- 归并数组
- LeetCode 88. Merge Sorted Array
- [LeetCode]88.Merge Sorted Array
- [Leetcode] 88. Merge Sorted Array
- LeetCode --- 88. Merge Sorted Array
- [leetcode] 88.Merge Sorted Array
- [leetcode] 88. Merge Sorted Array
- 88. Merge Sorted Array LeetCode
- 【LeetCode】88. Merge Sorted Array
- LeetCode *** 88. Merge Sorted Array
- LeetCode 88. Merge Sorted Array
- leetcode 88. Merge Sorted Array
- LeetCode 88. Merge Sorted Array
- leetcode-88. Merge Sorted Array
- leetcode 88. Merge Sorted Array
- hibernater List
- IO与NIO的区别
- SQL语句RIGHT JOIN
- 蓝桥杯比赛javaB组练习《饮料换购》
- 第1节 总结上一节的内容(常见的终端命令)
- LeetCode 88. Merge Sorted Array 归并的过程
- zhe个
- 跨域资源共享 CORS 详解
- 阴影框的实现方法
- jqGrid资料文档
- Spark源码分析-以wordcount为入口进行spark-submit源码分析
- idea 2016 激活码
- linux install jkd
- Oracle数据库链Database links