leetcode — merge-sorted-array
2017-10-31 08:23
393 查看
import java.util.Arrays; /** * Source : https://oj.leetcode.com/problems/merge-sorted-array/ * * * Given two sorted integer arrays A and B, merge B into A as one sorted array. * * Note: * You may assume that A has enough space (size that is greater or equal to m + n) * to hold additional elements from B. The number of elements initialized in A and B * are m and n respectively. */ public class MergeSortedArray { /** * 将数组B合并到数组A,数组A空间足够大能放得下B * 合并两个排序的数组,使用两个指针分别指向两个数组,然后比较大小将较小的放到数组A中, * 如果把小的放在前面可能回把A中的元素覆盖(数组排序是升序的) * * 所以可以考虑从两个数组的末尾开始合并,将较大的元素放在A数组的最后 * * 如果任意一个数组遍历完了,把B中剩下的元素依次插入A中 * @param a * @param b * @return */ public int[] merge (int[] a, int m, int[] b, int n) { int pa = m - 1; int pb = n - 1; int pc = m + n - 1; while (pa > -1 && pb > -1) { if (a[pa] > b[pb]) { a[pc--] = a[pa--]; } else { a[pc--] = b[pb--]; } } while (pb > -1) { a[pc--] = b[pb--]; } return a; } public static void main(String[] args) { MergeSortedArray mergeSortedArray = new MergeSortedArray(); int[] a = new int[]{1,5,9,0,0,0,0}; int[] b = new int[]{2,3,8}; System.out.println(Arrays.toString(mergeSortedArray.merge(a, 3, b, 3))); } }
相关文章推荐
- [Leetcode]Merge Sorted Array
- Leetcode 第88题 Merge Sorted Array
- LeetCode: Merge Sorted Array [088]
- LeetCode | Merge Sorted Array
- LeetCode:Merge Sorted Array
- leetcode_题解_Merge Sorted Array _简单题
- leetcode:Merge Sorted Array
- leetcode---Merge Sorted Array
- [LeetCode] Merge Sorted Array
- [LeetCode]88 Merge Sorted Array
- LeetCode-Merge Sorted Array
- 【leetcode c++】88 Merge Sorted Array
- [Leetcode] Merge Sorted Array
- LeetCode - Merge Sorted Array
- LeetCode(88)题解-- Merge Sorted Array
- [leetcode] Merge Sorted Array
- leetcode 88 Merge Sorted Array
- LeetCode88——Merge Sorted Array
- leetcode[88]:Merge Sorted Array
- LeetCode 088 Merge Sorted Array