zoukankan      html  css  js  c++  java
  • 【LeeCode88】Merge Sorted Array★

    1.题目描述:

    2.解题思路:

       题意:两个由整数构成的有序数组nums1和nums2,合并nums2到nums1,使之成为一个有序数组。注意,假设数组nums1有足够的空间存储nums1和nums2的所有元素(>=m+n)。

      思路很简单,直接上代码。

    3.Java代码:

    (1)普通

     1 //public class LeetCode88 为测试代码
     2 public class LeetCode88 {
     3     public static void main(String[] args) {
     4         int[] nums1=new int[8];
     5         nums1[0]=1;
     6         nums1[1]=3;
     7         nums1[2]=5;
     8         System.out.println("初始时nums1:"+nums1[0]+","+nums1[1]+","+nums1[2]);
     9         int[] nums2={2,4,6,8};
    10         new Solution().merge(nums1, 3, nums2, 4);
    11         System.out.print("合并后nums1:"+nums1[0]);
    12         for(int i=1;i<nums1.length-1;i++){
    13             System.out.print(","+nums1[i]);
    14         }
    15         }
    16 }
    17 
    18 //class Solution为ac代码
    19 class Solution {
    20     public void merge(int[] nums1, int m, int[] nums2, int n) {
    21         int i=m-1,j=n-1,k=m+n-1;
    22         while(i>-1&&j>-1) nums1[k--]=(nums1[i]>nums2[j])?nums1[i--]:nums2[j--];
    23         while(j>-1) nums1[k--]=nums2[j--];
    24     }
    25 }

    测试结果:

    (2)更简洁写法(来自网上大神,一行代码解决!):

     1 //public class LeetCode88 为测试代码
     2 public class LeetCode88 {
     3     public static void main(String[] args) {
     4         int[] nums1=new int[8];
     5         nums1[0]=1;
     6         nums1[1]=3;
     7         nums1[2]=5;
     8         System.out.println("初始时nums1:"+nums1[0]+","+nums1[1]+","+nums1[2]);
     9         int[] nums2={2,4,6,8};
    10         new Solution().merge(nums1, 3, nums2, 4);
    11         System.out.print("合并后nums1:"+nums1[0]);
    12         for(int i=1;i<nums1.length-1;i++){
    13             System.out.print(","+nums1[i]);
    14         }
    15         }
    16 }
    17 
    18 //class Solution为ac代码
    19 class Solution {
    20     public void merge(int[] nums1, int m, int[] nums2, int n) {
    21          while(n>0) nums1[m+n-1]=(m==0||nums2[n-1]>nums1[m-1])?nums2[--n]:nums1[--m];
    22     }
    23 }

    测试结果:

  • 相关阅读:
    jsp转向
    什么是 XDoclet?
    tomcat中的几点配置说明
    mysql5问题
    POJ 3734 Blocks
    POJ 2409 Let it Bead
    HDU 1171 Big Event in HDU
    POJ 3046 Ant Counting
    HDU 2082 找单词
    POJ 1286 Necklace of Beads
  • 原文地址:https://www.cnblogs.com/zhangboy/p/6497292.html
Copyright © 2011-2022 走看看