import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums1 int整型一维数组 * @param m int整型 * @param nums2 int整型一维数组 * @param n int整型 * @return int整型一维数组 */ public int[] mergeArrays (int[] nums1, int m, int[] nums2, int n) { int index1 = 0; int index2 = 0; int [] result = new int[m + n]; int index = 0; while (index1 < m && index2 < n) { if (nums1[index1] > nums2[index2]) { result[index++] = nums1[index1]; index1++; } else { result[index++] = nums2[index2]; index2++; } } while (index1 < m) { result[index++] = nums1[index1++]; } while (index2 < n) { result[index++] = nums2[index2++]; } return result; } }
本题知识点分析:
1.双指针
2.数组遍历
3.数学模拟
本题解题思路分析:
1.双指针,同时遍历两个数组,选择大的值进行填充
2.如果跳出循环,可能是一个数组长度比另外一个长,因此再用两个while进行后续的衔接,将剩下的数字拼接上去
3.返回result数组