LeetCode-88合并两个有序数组
2020-03-06 21:45
197 查看
题目描述
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。
示例
输入:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6], n = 3
输出: [1,2,2,3,5,6]
解题思路
这道题还是双指针的思想,只不过做的同时也需要灵活一下,如果遍历时均是从开头开始遍历,那么除非开新数组否则原数组的数据可能会在未遍历时便被占据。因此此时可以从后向前遍历,这样因为nums1数组本身空间足以容纳两数组,所以不会在未遍历时便占据nums1数组。
代码如下
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){ int t1=m-1, t2=n-1,i=nums1Size-1; while(1){ if(t2<0) break; if(t1<0){ while(t2>=0){ nums1[i--] = nums2[t2--]; } break; } if(nums1[t1]>nums2[t2]){ nums1[i--] = nums1[t1--]; } else{ nums1[i--] = nums2[t2--]; } } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- leetcode之数组类之数组的旋转与分治类-----OJ 189/33/81/153/154 数组旋转 旋转数组搜索 88 有序数组合并 4 两个有序数组寻找第K个元素/中位数 35 寻找插入位置
- Python LeetCode(88.合并两个有序数组)
- Leetcode88.合并两个有序数组
- 【LeetCode】88 合并两个有序数组
- 【88.合并两个有序数组】 LeetCode
- LeetCode 88 合并两个有序数组 Java 从头/尾开始的双指针、C++库函数
- 【LeetCode】[88] 合并两个有序数组
- 【leetcode系列】88.合并两个有序数组
- LeetCode刷题笔记(Java版)----88、合并两个有序的数组
- Leetcode刷题27-88.合并两个有序数组(C++)
- Leetcode 88 Merge Sorted Array 合并两个有序数组
- leetcode刷题88 合并两个有序数组
- LeetCode - 88. 合并两个有序数组
- [LeetCode]Merge Sorted Array(合并两个有序的数组)
- Leetcode题库 ----合并两个有序数组(java语言版)
- LeetCode88. 合并两个有序数组
- 88. 合并两个有序数组
- 88. 合并两个有序数组
- LeetCode 88. 合并两个有序数组
- [LeetCode]88. 合并两个有序数组