• 88 Merge Sorted Array


    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 mand n respectively.

    题目大概的意思就是给出两个已经排序好的数组,合并这两个数组并要求仍然有序。

     1 class Solution {
     2 public:
     3     void merge(int A[], int m, int B[], int n) {
     4         int i,j,k;
     5         for(k=m+n-1,i=m-1,j=n-1;k>=0;k--){
     6             if((A[i]>B[j]||j<0)&&(i>=0)){
     7                 A[k]=A[i--];
     8             }else{
     9                 A[k]=B[j--];
    10             }
    11         }
    12     }
    13 };

    代码比较简单,简单的说一下思路,

    新数组的长度是m+n,从新数组的最后一个元素开始循环插入数组

    if((A[i]>B[j]||j<0)&&(i>=0)) 这句代码可以这样理解,对应着两种情况:

    情况一 如果数组A当前下标的元素大于数组B当前下标的元素并且数组A没有循环结束 

    情况二 如果数组B的元素已经循环完而数组A的元素还没有循环完

    这两种情况下就将元素保存到新的数组A中。

  • 相关阅读:
    Windows 7安装 OneDrive
    MySQL8.0降级为MySQL5.7
    Windows和Linux下安装Rsync
    Jenkins持续集成工具安装
    Pure-Ftpd安装配置
    redis安装配置
    Tcp粘包处理
    .Net Core Socket 压力测试
    使用RpcLite构建SOA/Web服务(Full .Net Framework)
    使用RpcLite构建SOA/Web服务
  • 原文地址:https://www.cnblogs.com/xiaoysec/p/4420480.html
Copyright © 2020-2023  润新知