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为最大值,结果出来。
下面给出我解答的代码(粗略)