【LeetCode练习】[简单]88. 合并两个有序数组

【LeetCode练习】[简单]88. 合并两个有序数组

88. 合并两个有序数组

题目来源
算法思想:数组

题目:
在这里插入图片描述

java代码

class Solution {
    
    
    public void merge(int[] nums1, int m, int[] nums2, int n) {
    
    
		int[] temp = new int[m];//用来暂时存放nums1中的数组
		for (int i = 0; i < m; i++) {
    
    
			temp[i] = nums1[i];
		}
		int i = 0;//指向temp
		int j = 0;//指向nums2
		int k = 0;//指向nums1
		while (i < m && j < n) {
    
    //比较temp和nums2中数值,将比较的小的放入最终答案nums1中
			if (temp[i] <= nums2[j]) {
    
    //如果temp中值的小,将其放入
				nums1[k] = temp[i];
				k++;//向后移
				i++;
			}
			else {
    
    //如果nums2中值的小,将其放入
				nums1[k] = nums2[j];
				k++;//向后移
				j++;
			}
		}
		while (i < m) {
    
    //如果temp中有元素剩余,将顺序其加入nums1末尾
			nums1[k] = temp[i];
			k++;
			i++;
		}
		while (j < n) {
    
    //如果nums2中有元素剩余,将顺序其加入nums1末尾
			nums1[k] = nums2[j];
			k++;
			j++;
		}
    }
}

猜你喜欢

转载自blog.csdn.net/qq_39457586/article/details/109114442