Leetcode 88. 合并两个有序数组 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 88. 合并两个有序数组 解题思路及C++实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
解題思路:
定義三個指針,分別從 nums1 和 nums2 數(shù)組的尾部開始向前掃一遍,即可將最終的排序結(jié)果存儲在nums1中,時間復(fù)雜度為 O(m+n)。
?
class Solution { public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {int i = m - 1; //作為nums1數(shù)組的指針int j = n - 1; //作為nums2數(shù)組的指針int p = m + n - 1; //最終的nums1數(shù)組的位置指針while(j >= 0 && i >= 0){if(nums2[j] > nums1[i]){nums1[p--] = nums2[j--];}else{nums1[p--] = nums1[i--];}}while(i >= 0){nums1[p--] = nums1[i--];}while(j >= 0){nums1[p--] = nums2[j--];}} };?
?
總結(jié)
以上是生活随笔為你收集整理的Leetcode 88. 合并两个有序数组 解题思路及C++实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 963. 最小面积矩形
- 下一篇: Leetcode 167. 两数之和 I