欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

Leetcode 88. 合并两个有序数组 解题思路及C++实现

发布时间:2025/4/16 c/c++ 33 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Leetcode 88. 合并两个有序数组 解题思路及C++实现 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

解题思路:

定义三个指针,分别从 nums1 和 nums2 数组的尾部开始向前扫一遍,即可将最终的排序结果存储在nums1中,时间复杂度为 O(m+n)。

 

class Solution { public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {int i = m - 1; //作为nums1数组的指针int j = n - 1; //作为nums2数组的指针int p = m + n - 1; //最终的nums1数组的位置指针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--];}} };

 

 

总结

以上是生活随笔为你收集整理的Leetcode 88. 合并两个有序数组 解题思路及C++实现的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。