zoukankan      html  css  js  c++  java
  • [leetcode] 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 andn respectively.

    https://oj.leetcode.com/problems/merge-sorted-array/

    思路:这题的技巧是从后面开始merge。

    /**
     * http://blog.csdn.net/havenoidea/article/details/12033023
     */
    public class Solution {
        public void merge(int A[], int m, int B[], int n) {
            if (m < 0 || n < 0)
                return;
            int i = m - 1;
            int j = n - 1;
            int p = m + n - 1;
            while (i >= 0 && j >= 0) {
                if (A[i] > B[j]) {
                    A[p--] = A[i--];
                } else {
                    A[p--] = B[j--];
                }
            }
            if (j >= 0) {
                while (j >= 0)
                    A[p--] = B[j--];
            }
    
        }
    
        public static void main(String[] args) {
            int[] a = new int[] { 1, 2, 0, 0, 0, 0 };
            int m = 2;
            int[] b = new int[] { 1, 3, 5 };
            int n = 3;
            new Solution().merge(a, m, b, n);
        }
    
    }
    View Code

    第二遍记录:

      从后向前遍历。

  • 相关阅读:
    php详解和优化
    接口
    抽象类
    对象转型
    面向对象2
    Super关键字
    Object类介绍
    有效处理java异常的三个原则
    this关键字
    equals方法
  • 原文地址:https://www.cnblogs.com/jdflyfly/p/3819173.html
Copyright © 2011-2022 走看看