LeetCode-双指针-88. 合并两个有序数组
生活随笔
收集整理的這篇文章主要介紹了
LeetCode-双指针-88. 合并两个有序数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
88. 合并兩個有序數組
思路:歸并排序,一長一短,肯定會有一個先放完,放完后把另一個拷貝過去即可。
為了避免覆蓋所以從最后開始向前放最大的元素
class Solution { public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {//利用歸并排序的思想int index1 = m-1, index2 = n-1;int size_nums = nums1.size()-1;//先整體進行排序while(index1>=0&&index2>=0){if(nums1[index1]<nums2[index2]){nums1[size_nums] = nums2[index2];index2--;size_nums--;}else {nums1[size_nums] = nums1[index1];index1--;size_nums--;}}//考慮邊界情況while(index1>=0){nums1[size_nums] = nums1[index1];index1--;size_nums--;}//當第二個索引沒有到0,說明第二個還有數沒有完全到1里面while(index2>=0){nums1[size_nums] = nums2[index2];index2--;size_nums--;}} };總結
以上是生活随笔為你收集整理的LeetCode-双指针-88. 合并两个有序数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode-剑指 Offer 50
- 下一篇: LeetCode-动态规划-198. 打