题解 | #非递增数组的合并#
非递增数组的合并
https://www.nowcoder.com/practice/75b569d81b9349da830fbb21c48eb6d2?tpId=363&tqId=10616963&ru=/exam/oj&qru=/ta/super-company23Year/question-ranking&sourceUrl=%2Fexam%2Foj
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数组

查看12道真题和解析
