• Leetcode 88. Merge Sorted Array


    Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

    Note:
    You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The number of elements initialized in nums1and nums2 are m and n respectively.


    解题思路:

    The key to solve this problem is moving element of A and B backwards. If B has some elements left after A is done, also need to handle that case.

    从后往前填空。九章算法也是这么讲的。

     

    Java code:
    1.
    public void merge(int[] nums1, int m, int[] nums2, int n) {
            //from back to front
            int k = m+n-1;
            int i = m-1;
            int j = n-1;
            for(; i >= 0 && j >= 0; k--) {
                if(nums1[i] >= nums2[j]) {
                    nums1[k] = nums1[i--];
                }else{
                    nums1[k] = nums2[j--];
                }
            }
            while(j >= 0) {
                nums1[k--] = nums2[j--];
            }
        }

    2. 九章算法答案  2016.01.18

    public class Solution {
        public void merge(int[] nums1, int m, int[] nums2, int n) {
            int i = m-1, j = n-1, index = m + n - 1;
            while( i >= 0 && j >= 0) {
                if(nums1[i] > nums2[j]) {
                    nums1[index--] = nums1[i--];
                }else {
                    nums1[index--] = nums2[j--];
                }
            }
            while( j >= 0) {
                nums1[index--] = nums2[j--];
            }
        }
    }

    Reference:

    1. http://www.programcreek.com/2012/12/leetcode-merge-sorted-array-java/

    2. http://fisherlei.blogspot.com/2012/12/leetcode-merge-sorted-array.html

     
  • 相关阅读:
    DAY 06 PYTHON入门
    DAY 05 PYTHON入门
    DAY 04 PYTHON入门
    DAY 03 PYTHON入门
    DAY 02 PYTHON入门
    DAY 01 PYTHON入门
    RTC时钟和BKP的配置stm32
    Altium Designer画原理图时要紧凑
    串口的数据长度校验
    Centos7下创建文件夹 移动文件/文件夹 删除文件/文件夹 解压/文件夹打包压缩 命令整理
  • 原文地址:https://www.cnblogs.com/anne-vista/p/4848342.html
Copyright © 2020-2023  润新知