因为换了手机号码,之前leetcode的账号登不上去了,正好太久不刷题,很多思路都没了,所以重新开始刷leetcode!
这道题很简单,指针模拟一下,从后往前考虑,先看最大值。
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
//双指针(三指针),从后往前考虑
int index=m+n-1;
int index1=m-1;
int index2=n-1;
while(index2>=0)
{
if(index1>=0&&nums1[index1]>nums2[index2])
{
nums1[index]=nums1[index1];
index--;
index1--;
}
else
{
nums1[index]=nums2[index2];
index--;
index2--;
}
}
}
};