zoukankan      html  css  js  c++  java
  • 就地交叉数组元素[a1a2b1b2]->[a1b1a2b2]

    问题描述:

    If [a1,a2,a3...,an,b1,b2...bn] is given input change this to [a1,b1,a2,b2.....an,bn] , solution should be in-place

    解答:

    第一步,交换中间一组元素.  再交换中间两组元素. 持续进行知道获得结果.

    例子:

    a1 a2 a3 a4 b1 b2 b3 b4
    a1 a2 a3 b1 a4 b2 b3 b4
    a1 a2 b1 a3 b2 a4 b3 b4
    a1 b1 a2 b2 a3 b3 a4 b4

    代码:

       1:  int interleave(int arr[], int len) {
       2:    int n = len/2;
       3:    for (int i = 1; i < n; i++) { // my step no.
       4:      for (int j = 0; j < i; j++) { // no. of swaps
       5:        swap(arr, n-i+2*j, n-i+2*j+1);
       6:      }
       7:    }
       8:  }

    来自: carrercup

  • 相关阅读:
    C++ Call C# COM
    C ++ / CLI 语法
    C#调用C++ DLL动态库的两种方式
    Linux下的JMeter部署及使用
    同时处理多请求(带超时时间)
    同时处理多请求
    curl命令
    mysql命令
    SpringBoot配置文件敏感信息加密-jasypt
    spring boot升级到2.x的坑
  • 原文地址:https://www.cnblogs.com/xubenben/p/3383688.html
Copyright © 2011-2022 走看看