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# 数据操作系列
    C# 数据操作系列
    C# 基础知识系列- 17 小工具优化
    C# 基础知识系列- 17 实战篇 编写一个小工具(1)
    计算机网络知识概述
    微信公众号开发:消息处理
    微信公众号开发:服务器配置
    C#调用接口注意要点
    npm安装和Vue运行
    实战spring自定义属性(schema)
  • 原文地址:https://www.cnblogs.com/xubenben/p/3383688.html
Copyright © 2011-2022 走看看