第十五部分 名企笔试真题解析——编程题(持续更新)

15.2 编程题及解析

更新时间:2019.04.24 题目总量:9

以下参考答案均通过在线OJ的审查,符合内存和运行时间要求。

在线编程中,编程语言不限,但以JavaC/C++为主。参考答案以C/Java为主。

15.2.1 坐大巴车(猿辅导笔试真题)

某天猿辅导 HR 组织大家去漂流,早上,参加团建的同学都到齐了,并且按到达公司的先后顺序排好队了。 由于员工太多,一个大巴车坐不下,需要分多个车,车是足够的,但所有人需要按一定顺序上车,按如下规则安排上车的顺序:

假设大巴车容量为 m,从队首开始,每 m 个人分成一个小组,每个小组坐一辆车。同时只有一个车打开车门供员工上车。 小组之间按从队尾到队首顺序依次上车,同一小组内先到的同学先上,求所有人上车的顺序。

 

例如: 员工数 8 车容量 3 员工到达顺序为 1 2 3 4 5 6 7 8 3个人一个小组,分三个小组, 小组一: 1 2 3 小组二: 4 5 6,小组三: 78 小组上车顺序为: 小组三,小组二,小组一 所有员工上车顺序为 7 8 4 5 6 1 2 3

输入描述:

第一行: 员工数和大巴容量

第二行: 所有员工工号(按到达顺序)

 

输出描述:

员工编号

输入例子1:

5 3

1 3 5 2 4

 

输出例子1:

2 4 1 3 5

import java.util.Scanner;

public class Main{

    public static void main(String[] args){

        Scanner sc = new Scanner(System.in);

        int Enum = sc.nextInt();

        int Bnum = sc.nextInt();

        int[] arr = new int[Enum];

        int n = 0;

        for(int i = 0;i<Enum;i++){

            arr[i] = sc.nextInt();

        }

        for(n = 0;n+Bnum<Enum;n+=Bnum){

            int left = n;

            int right = n + Bnum-1;

            while(left < right){

                int temp = arr[left];

                arr[left] = arr[right];

                arr[right] = temp;

                left++;

                right--;

            }

        }

        if(n<Enum){

            int left = n;

            int right =Enum - 1;

            while(left < right){

                int temp = arr[left];

                arr[left] = arr[right];

                arr[right] = temp;

                left++;

                right--;

            }

        }

        for(int i = Enum-1;i>-1;i--){

            System.out.print(arr[i]);

            if(i!=0){

                System.out.print(" ");

            }

        }

    }

}

 

15.2.2 拍照队形(猿辅导笔试真题)

猿辅导公司的 N位(N>=4)研发同学组织了一次秋游活动,某同学带了个无人机在高空拍照,活动结束时,先拍了一张所有同学排成公司猴头Logo的照片, 接着有人提议再排成“猿”的首字母Y字形来拍一张合照。

用字符串中的每一个字符(不是换行符或结束符'\0')代表一位老师,输出排好后的队形。要求 Y字除去中心点外,上下半部分等高,按照从左到右,从上到下进行排序。队形中没人的部分用空格占位。

输入数据保证可以排出一个完整的Y字,即长度为 3k+1 k>=1

例如: 7 x ,排成队形为(为了方便说明,这里用‘-’代替空格):

x---x

-x-x

--x

--x

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值