题解 | #非递增数组的合并#

非递增数组的合并

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数组

本题使用编程语言: Java

全部评论

相关推荐

05-12 16:04
已编辑
江西财经大学 Java
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务