88、合并两个有序的数组
描述:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。
说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2中的元素。
解法1:
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int p = m+n-1;//指向nums1最后一位
m--;
n--;
while(m>=0 && n>=0){
if(nums1[m]<=nums2[n]){
nums1[p]=nums2[n];
p--;
n--;
}else{
nums1[p]=nums1[m];
p--;
m--;
}
}
while(n>=0){
nums1[p]=nums2[n];
p--;
n--;
}
//LeetCode自动返回nums1
}
}
!