zoukankan      html  css  js  c++  java
  • 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.

    思路:这题明显归并排序的影子,仅仅是须要变通一下,从后往前排序就可以。将大的值放在nums1后面。

    代码例如以下:

    public class Solution {
        public void merge(int[] nums1, int m, int[] nums2, int n) {
        	
        	/**
        	 * 归并排序的思想,从后往前排
        	 * 大的放在最后。依次放到最前
        	 */
            int len = m + n;//排序后总长度
            while(m > 0 && n > 0){
                if(nums1[m-1] > nums2[n-1]){
                    nums1[--len] = nums1[--m];
                }else{
                    nums1[--len] = nums2[--n];
                }
            }
            //余下的数字
            while(m > 0){
                nums1[--len] = nums1[--m];
            }
            while(n > 0){
                nums1[--len] = nums2[--n];
            }
        }
    }


  • 相关阅读:
    本周总结
    本周总结
    第四周自我总结
    结对编程
    第四周自我总结
    第三周自我总结
    本周工作安排及内容
    知识思考
    交作业。。。
    MSF过程模型
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7183784.html
Copyright © 2011-2022 走看看