zoukankan      html  css  js  c++  java
  • leetcode:Merge Sorted Array (合并排好序的数组)

    Question:Given two sorted integer arrays A and B, merge B into A as one sorted array.

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

    问题:给两个排好序的数组A和数组B,把B中元素合并到数组B中,假设A有足够的空间可以至少容纳m+n个元素,设计一个算法实现。

    思路:这个题比较简单,只需要把数组A和数组B从后往前依次比较,首先设计一个指针K=m+n-1,表示从后往前逐次赋值的指针,用i和j分别表示数组A和数组B移动的指针,假如数组A中i下标指向的元素大于数组B中J下标指向的元素,则把A中I下标指向的元素赋值给A中K下标指向的元素,反之,同样的道理。

    代码设计(C++):

     1 class Solution {
     2 public:
     3     void merge(int A[], int m, int B[], int n) 
     4     {
     5         if(!A||!B||m<0||n<0)
     6             return;
     7         int i=m,j=n;//i记录在A中移动的元素指针,j记录在B中移动元素的指针
     8         int k=m+n-1;//记录存储数据的指针
     9         while (i&&j)
    10         {
    11             if(A[i-1]>=B[j-1])
    12                 A[k--]=A[--i];
    13             else
    14                 A[k--]=B[--j];
    15         }
    16         while(i)
    17             A[k--]=A[--i];
    18         while(j)
    19             A[k--]=B[--j];
    20     }
    21 };
  • 相关阅读:
    pyqt5 树节点点击实现多窗口切换
    pyglet self.
    itchat key
    python队列Queue
    Python建立多线程任务并获取每个线程返回值
    利用Python实现多线程聊天功能
    Python3.5+PyQt5多线程+itchat实现微信防撤回桌面版代码
    pyglet player sound
    文件打开的几种访问模式
    pyglet StaticSource
  • 原文地址:https://www.cnblogs.com/zhaolizhen/p/MergeSortedArray.html
Copyright © 2011-2022 走看看