首页 > 编程语言 > 详细

p18 合并2个有序数组 (leetcode 88)

时间:2020-03-11 17:27:48      阅读:61      评论:0      收藏:0      [点我收藏+]

一:解题思路

这个题目的解法利用双指针来进行解答。

二:完整代码示例 (C++版和Java版)

C++版:

 class Solution 
 {
 public:
     void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) 
     {
         int i = m - 1, j = n - 1, k = m + n - 1;

         while ((i >= 0) && (j >= 0))
         {
             if (nums1[i] > nums2[j])
             {
                 nums1[k--] = nums1[i--];
             }
             else
             {
                 nums1[k--] = nums2[j--];
             }
         }

         while (j >= 0) nums1[k--] = nums2[j--];
     }
 };

Java版:

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

 

p18 合并2个有序数组 (leetcode 88)

原文:https://www.cnblogs.com/repinkply/p/12462915.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!