公交车人数问题(某公司在线笔试编程题)

一道在线笔试编程题,求解公交车在n站过程中人数最多时是多少。通过分析上下车人数变化,得出动态过程中的人数峰值。题目涉及输入合法性检查,实际编程实现需考虑更多细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.题目描述(回忆版):
假设公交车有n(n介于[1,100])站,
在第i站,下车人数为a[i]人,上车的人数为b[i]人,
问公交车人数最多的时候为多少人。

示例
输入
4
0 3
1 3
1 2
2 1

输出
6

程序分析
1.其实这个场景大家都很熟悉,因为大家都做过公交车,车没到一站,上上下下的人,是一个动态的过程,在开动的过程里,在两个站之间,总会出现一个峰值即人数最多的时候。

2.在基于1的认识下,再进行分析
4个站台
下 上 单个站台人数
0 3 3
1 3 2
1 2 1
2 1 -1
关于单个站台人数,其实就是在这个站台上,上车人数减去单个人数的数量

3.在基于2的思考下,第三个表很容易列出了
4个站台
下 上 单个站台人数 到目前站台余下人数
0 3 3 3
1 3 2 5
1 2 1 6
2 1 -1 5

4.关于到目前站台余下人数,其实就是这个到下个站台之前,车在开动时,上个站台单个站台人数加这个站台的,如第0个站台,加第1个站台就是3加2 等于5,做到第三步,基本已经解答差不多了,欠缺一个搜索最大值的过程,在到目前站台余下人数里,搜索到6为最大值,结果出来。

下面给出我解答的代码(粗略)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值