校招算法笔面试 | 校招笔面试真题-大巴车(数组分块,按块翻转,块内不变)

题目

题目链接

#题解
##题目难度:简单
##知识点:数学逻辑、数组
分析:首先我们将原顺序放入members数组中,对于该分组输出问题,我们需要依次找到每次输出的起始下标和结束下标,可以根据memberCount/carCount的商m值找到每次输出的起始坐标,如第一次为m*carCount,第二次为(m-1)*carCount当我们的m值变为-1时,所有分组的顺序都已全部写入辅助orders数组。同时考虑结束位置,对于第一组,其结束位置小标为memberCount-1,其余分组都为该组起始位置+carCount-1(每一辆车转满)。

当memberCount=8,carCount=3时,m=memberCount/carCount=2
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

#include <iostream>
#define Maxn 100000
using namespace std;
int members[Maxn];
int orders[Maxn];
int main() {
    int memberCount, carCount;
    cin &gt;&gt; memberCount;
    cin &gt;&gt; carCount;
    for (int i = 0; i &lt; memberCount; i++) {
        cin &gt;&gt; members[i];
    }
    int m,n;
    int falt=0;
    m=memberCount/carCount;
    int i=0;
    while(m&gt;=0)
    { 
       if(falt==0) {
       	for(int j=m*carCount;j</iostream>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值