精华内容
下载资源
问答
  • /*** java 合并两个有序数组*/public class MergeTwoArray {public static void main(String[] args) {int[] arrayA = {100,200,201,334};int[] arrayB = {101,104,106,233,455,772};int[] arrayC = new int[ar...

    package base;

    /**

    * java 合并两个有序数组

    */

    public class MergeTwoArray {

    public static void main(String[] args) {

    int[] arrayA = {100,200,201,334};

    int[] arrayB = {101,104,106,233,455,772};

    int[] arrayC = new int[arrayA.length + arrayB.length];

    merge(arrayA,arrayA.length,arrayB,arrayB.length,arrayC);

    disPlay(arrayC);

    }

    public static void merge(int[] arrayA, int sizeA, int[] arrayB, int sizeB,int[] arrryC) {

    int aIndex = 0, bIndex = 0,cIndex = 0;

    while (aIndex < sizeA && bIndex < sizeB) {

    if(arrayA[aIndex] < arrayB[bIndex]) {

    arrryC[cIndex ++] = arrayA[aIndex++];

    } else {

    arrryC[cIndex ++] = arrayB[bIndex++];

    }

    }

    while (aIndex < sizeA) {

    arrryC[cIndex ++] = arrayA[aIndex++];

    }

    while (bIndex < sizeB) {

    arrryC[cIndex ++] = arrayB[bIndex ++];

    }

    }

    public static void disPlay(int[] arryx) {

    for(int i = 0; i < arryx.length; i ++) {

    System.out.print(arryx[i] + " ");

    }

    System.out.println();

    }

    }

    展开全文
  • 借助额外数组 C,从头遍历 A B 数组,把小的放到 C 中,最后把 C 复制给 A (常规思路) public void merge(int A[], int m, int B[], int n) { int[] C = new int[m + n]; int i = 0, j = 0, k = 0; while (i <...

    牛客题目链接

    1. 题目考点

    1. 双指针原地修改数组

    2. 考点解析

    1. 借助额外数组 C,从头遍历 A B 数组,把的放到 C 中,最后把 C 复制给 A (常规思路)
    public void merge(int A[], int m, int B[], int n) {
            int[] C = new int[m + n];
            int i = 0, j = 0, k = 0;
            while (i < m && j < n) {
                if (A[i] < B[j]) C[k++] = A[i++];
                else C[k++] = B[j++];
            }
            // 添加数组中剩余的元素
            while (i < m) C[k++] = A[i++];
            while (j < n) C[k++] = B[j++];
            for (i = 0; i < k; i++) 
                A[i] = C[i];
        }
    
    1. 在 A 上原地修改,从尾部向前遍历 A B 数组,把的元素放到 A 的尾部
    public void merge(int A[], int m, int B[], int n) {
            int i = m - 1, j = n - 1, k = m + n - 1;
            while (i >= 0 && j >= 0) {
                if (A[i] > B[j]) A[k--] = A[i--];
                else A[k--] = B[j--];
            }
            // 只需要把 B 中剩余元素复制到 A 中
            while (j >= 0) A[k--] = B[j--];
        }
    

    3. 参考链接

    1. 牛客解析
    展开全文
  • Java合并两个有序数组

    千次阅读 2015-06-09 14:24:21
    合并排序,将两个已经排序的数组合并成一个数组,其中一个数组能容下两个数组的所有元素public class MergeArray { public MergeArray(){ } public static ArrayList mergeArrays(int[] arrayOne, int[] ...

    合并排序,将两个已经排序的数组合并成一个数组,其中一个数组能容下两个数组的所有元素

    public class MergeArray {
    	public MergeArray(){
    		
    	}
    	
    	public static ArrayList<Integer> mergeArrays(int[] arrayOne, int[] arrayTwo){
    		int arrayOneLen = arrayOne.length;
    		int arrayTwoLen = arrayTwo.length;
    		ArrayList<Integer> resultArray = new ArrayList<Integer>();
    		int i= 0, j=0;
    		
    		while(i<arrayOneLen || j<arrayTwoLen){
    			if(i==arrayOneLen && j<arrayTwoLen){
    				resultArray.add(arrayTwo[j]);
    				j++;
    			}else if(i<arrayOneLen && j==arrayTwoLen){
    				resultArray.add(arrayOne[i]);
    				i++;
    			}else{
    				if(arrayOne[i]<=arrayTwo[j]){
    					resultArray.add(arrayOne[i]);
    					i++;
    				}else if(arrayOne[i]>arrayTwo[j]){
    					resultArray.add(arrayTwo[j]);
    					j++;
    				}
    			}
    		}
    		
    		return resultArray;
    	}
    	
    	public static void main(String[] args) {
    		int[] arrA = {1,3,5,7,8,9,11,12};
    		int[] arrB = {2,4,6,8,10,12,13};
    		
    		ArrayList<Integer> arrList = mergeArrays(arrA,arrB);
    		
    		for(Integer intItem:arrList ){
    			System.out.println(intItem);
    		}
    	}
    }

    展开全文
  • /*** java 合并两个有序数组*/public class MergeTwoArray {public static void main(String[] args) {int[] arrayA = {100,200,201,334};int[] arrayB = {101,104,106,233,455,772};int[] arrayC = new int[ar...

    package base;

    /**

    * java 合并两个有序数组

    */

    public class MergeTwoArray {

    public static void main(String[] args) {

    int[] arrayA = {100,200,201,334};

    int[] arrayB = {101,104,106,233,455,772};

    int[] arrayC = new int[arrayA.length + arrayB.length];

    merge(arrayA,arrayA.length,arrayB,arrayB.length,arrayC);

    disPlay(arrayC);

    }

    public static void merge(int[] arrayA, int sizeA, int[] arrayB, int sizeB,int[] arrryC) {

    int aIndex = 0, bIndex = 0,cIndex = 0;

    while (aIndex < sizeA && bIndex < sizeB) {

    if(arrayA[aIndex] < arrayB[bIndex]) {

    arrryC[cIndex ++] = arrayA[aIndex++];

    } else {

    arrryC[cIndex ++] = arrayB[bIndex++];

    }

    }

    while (aIndex < sizeA) {

    arrryC[cIndex ++] = arrayA[aIndex++];

    }

    while (bIndex < sizeB) {

    arrryC[cIndex ++] = arrayB[bIndex ++];

    }

    }

    public static void disPlay(int[] arryx) {

    for(int i = 0; i < arryx.length; i ++) {

    System.out.print(arryx[i] + " ");

    }

    System.out.println();

    }

    }

    展开全文
  • 合并两个有序数组 题目描述: 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够...
  • 题目中说明是两个有序数组,就一个一个比较,第一个数组的第一个元素和第二个数组的第一个元素比较。小的插入到result数组中。... * 合并两个有序数组,合并之后还是有序的 并且去除重复的。 * */ publi
  • packagecom.hudai..../*** 算法测试 合并两个有序数组到一个数组中**@authorWanHongLei*@version创建时间:2019年2月13日 上午11:14:13 类说明*/public classMergeTester {public static void main(String[] a...
  • packagecom.hudai..../*** 算法测试 合并两个有序数组到一个数组中**@authorWanHongLei*@version创建时间:2019年2月13日 上午11:14:13 类说明*/public classMergeTester {public static void main(String[] a...
  • 前几天看见一道面试题中要将两个有序数组合并成一个新的有序数组,首先使用了嵌套循环,之后想那样效率太低,又想出了以下思路,和大家分享下,如果有更好的方法,请留言指教: 思路:1.新建一个数组大小为firArr和...
  • 上课的时候遇到的一道面试题,这算法也是借鉴网上的 import java.util.Arrays; import java.util.Random; public class Test { public static void main(String[] args) { Random rand = new Random(); int...
  • /*** 合并两个有序数组* 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。* * 说明:* * 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。* 你可以假设 nums1 有足够...
  • 题目描述(简单难度)给两个有序数组,把第二个数组合并到第一个数组中,保持有序。可以注意到第一个数组已经为我们多开辟了第二个数组所需要的空间。解法一 直接法简单粗暴,nums1 作为被插入的数组,然后遍历 nums2...
  • 合并两个有序数组问题描述给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间...
  • 合并两个有序数组描述给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。 你可以假设 nums1 有足够的空间...
  • 88. 合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2的元素数量分别为 m 和 n 。 你可以假设 nums1有足够的空间...
  • /*** 合并两个有序数组* 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。* * 说明:* * 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。* 你可以假设 nums1 有足够...
  • 合并两个有序数组[1]题目描述给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够...
  • 给定两个有序整数数组nums1和nums2,将nums2合并到nums1中,使得num1成为一个有序数组。说明:初始化nums1和nums2的元素数量分别为m和n。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存nums2中的元素。...
  • /***写在前面,题目要求的是将有序数组合并,那么有可能这所谓的有序是顺序或者逆序*所以,应该在开始的时候判断一下*然后,在比较的时候应该根据顺序逆序来写判断逻辑*不过常规应该是顺序递增,然后就有了以下的...
  • Java合并2个有序数组

    2021-01-16 16:41:18
    给出两个有序的整数数组 A和 B,请将数组 B合并数组 A中,变成一个有序的数组 注意: 可以假设数组A有足够的空间存放数组B的元素, A和 B中初始的元素数目分别为 m和 n public class Solution { public void ...
  • @张九龄合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间...
  • 题目:有两个有序数组a,b,现需要将其合并成一个新的有序数组。 简单的思路就是先放到一个新的数组中,再排序。但是这样的没体现任何算法,这里考的不是快速排序等排序算法。关键应该是如何利用有序已知这个条件。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 604
精华内容 241
关键字:

java合并两个有序数组

java 订阅