博客
关于我
猿辅导2019校招技术类笔试题 编程题1:大巴车(数组分块,按块翻转,块内不变
阅读量:438 次
发布时间:2019-03-06

本文共 1246 字,大约阅读时间需要 4 分钟。

为了解决问题,我们需要将员工按照特定的规则分成小组,并确定每个小组的上车顺序。具体步骤如下:

  • 读取输入:首先读取员工数和车的容量,然后读取员工的到达顺序。
  • 分组员工:将员工按到达顺序分成每M个为一组。
  • 确定上车顺序:将这些组按从队尾到队首的顺序排列,然后将每个组内的员工依次上车。
  • 方法思路

  • 读取输入:使用Scanner读取输入数据,包括员工数、车容量和员工的到达顺序。
  • 分组员工:将员工数组分成每M个为一组。例如,如果有8个员工,车容量为3,那么分成三个组:1-3,4-6,7-8。
  • 确定上车顺序:将这些组按从最后一个组到第一个组的顺序排列,然后将每个组内的员工依次拼接到结果列表中。
  • 解决代码

    import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner sca = new Scanner(System.in);        int m = sca.nextInt();        int n = sca.nextInt();        int[] arr = new int[m];        for (int i = 0; i < arr.length; i++) {            arr[i] = sca.nextInt();        }        f(arr, 0, m, n);    }    public static void f(int[] arr, int temp, int m, int n) {        if (temp >= n) {            return;        }        // 打印当前块的所有员工        for (int i = temp; i < Math.min(temp + m, n); i++) {            System.out.print(arr[i]);            if (i != Math.min(temp + m, n) - 1) {                System.out.print(" ");            }        }        // 递归处理下一个块        f(arr, temp + m, m, n);    }}

    代码解释

  • 读取输入:使用Scanner读取输入数据,填充员工数组arr
  • 递归函数f:该函数处理当前块的员工,并递归处理下一个块。
    • 终止条件:如果当前索引temp超出员工数组长度,返回。
    • 打印当前块:从当前索引开始,打印当前块的所有员工,直到块的末尾或数组末尾。
    • 递归处理下一个块:调用自身处理下一个块,块的起始索引为当前索引加上车容量m
  • 通过这种方法,我们可以正确地将员工分成块,并按照指定的顺序输出上车顺序。

    转载地址:http://fbcyz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现n皇后问题算法(附完整源码)
    查看>>
    Objective-C实现OCR文字识别(附完整源码)
    查看>>
    Objective-C实现odd even sort奇偶排序算法(附完整源码)
    查看>>
    Objective-C实现page rank算法(附完整源码)
    查看>>
    Objective-C实现PageRank算法(附完整源码)
    查看>>
    Objective-C实现pascalTriangle帕斯卡三角形算法(附完整源码)
    查看>>
    Objective-C实现perfect cube完全立方数算法(附完整源码)
    查看>>
    Objective-C实现PNG图片格式转换BMP图片格式(附完整源码)
    查看>>
    Objective-C实现pollard rho大数分解算法(附完整源码)
    查看>>
    Objective-C实现quick select快速选择算法(附完整源码)
    查看>>
    Objective-C实现recursive bubble sor递归冒泡排序算法(附完整源码)
    查看>>
    Objective-C实现recursive insertion sort递归插入排序算法(附完整源码)
    查看>>
    Objective-C实现RedBlackTree红黑树算法(附完整源码)
    查看>>
    Objective-C实现redis分布式锁(附完整源码)
    查看>>
    Objective-C实现reverse letters反向字母算法(附完整源码)
    查看>>
    Objective-C实现ripple adder涟波加法器算法(附完整源码)
    查看>>
    Objective-C实现RodCutting棒材切割最大利润算法(附完整源码)
    查看>>
    Objective-C实现Romberg算法(附完整源码)
    查看>>
    Objective-C实现round robin循环赛算法(附完整源码)
    查看>>
    Objective-C实现RRT路径搜索(附完整源码)
    查看>>