【LeetCode】88.Merge Sorted Array(easy)解题报告

来源:互联网 发布:听音辨歌软件 编辑:程序博客网 时间:2024/06/05 18:37

【LeetCode】88.Merge Sorted Array(easy)解题报告

题目地址:https://leetcode.com/problems/merge-sorted-array/description/
题目描述:

  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 nums1 and nums2 are m and n respectively.

  两种思路,第一种merge sort,但是需要额外空间存储排序好的表。第二种如下,从后往前排序,避免覆盖,直接存到nums1上。

Solution:

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

Date:2017年11月15日

原创粉丝点击