力扣-88-合并两个有序数组
作者:互联网
本来觉得很简单,然后准备提交了发现要在数组1里面合并,没有额外空间
然后就有了一个大胆的想法——我直接插进去然后sort
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
// 逆向双指针
int p1 = m - 1, p2 = n - 1, index = m + n - 1;
while (p1 >= 0 || p2 >= 0) {
if (p1 == -1) nums1[index--] = nums2[p2--];
else if (p2 == -1) nums1[index--] = nums1[p1--];
else if (nums1[p1] > nums2[p2]) nums1[index--] = nums1[p1--];
else nums1[index--] = nums2[p2--];
}
}
};
时间都没过50%,老哥们还能写出多快速简单的解法
我感觉都忘了双指针怎么写,或者说,没写过这种双指针
标签:p2,index,p1,--,力扣,88,数组,nums1,nums2 来源: https://www.cnblogs.com/yaocy/p/16589020.html