链接:面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台
1.合并两个有序数组
思路:
两个指针分别指向两个数组的末尾,向前遍历比较大小,将大的依次逆向填充到nums1中
代码:
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int l=nums1.length-1;
int i=m-1,j=n-1;
while(i>=0&&j>=0){
if(nums1[i]>nums2[j]){
nums1[l--]=nums1[i];
i--;
}else{
nums1[l--]=nums2[j];
j--;
}
}
while(i>=0){
nums1[l--]=nums1[i--];
}
while(j>=0){
nums1[l--]=nums2[j--];
}
}
}