编程之美--游戏之乐--1.8小飞的电梯调度问题
2016-11-07 11:32
169 查看
o(n)解法
利用Y来存储以当前i层为基准,所有员工需要走的楼层
N1 i层以下所有人数
N2 第i层的人数
N3 i层以上的人数
可以得出:
Y = Y(i-1需要走的楼层)+N1-N2-N3
求解即可
利用Y来存储以当前i层为基准,所有员工需要走的楼层
N1 i层以下所有人数
N2 第i层的人数
N3 i层以上的人数
可以得出:
Y = Y(i-1需要走的楼层)+N1-N2-N3
求解即可
#coding=utf-8 #author='HL' class Solution(): def solve(self,n_Person): ''' :param n_Person:type--list,每层电梯停留人数 :return: ''' Y = 0 for i in range(3,len(n_Person)): Y+=(i-2)*n_Person[i] n_Person[i]+=n_Person[i-1] print '到第i层为止,目前的人数为:' print n_Person print '第2层停止,需要走的步数:' print Y res = Y number = 2 ''' N1 i层以下所有人数 N2 第i层的人数 N3 i层以上的人数 ''' for i in range(3,len(n_Person)): N1 = n_Person[i-1] N2 = n_Person[i]-n_Person[i-1] N3 = n_Person[-1]-n_Person[i] Y = Y+N1-N2-N3 if Y<res: res = Y number = i else: break return res,number zz = Solution() print zz.solve([0,0,1,2,3,4,5])
相关文章推荐
- 编程之美--1.8--小飞的电梯调度问题--扩展问题--2--(M层电梯选择K层停靠)
- 编程之美---小飞的电梯调度问题 1.8 扩展2
- 编程之美---小飞的电梯调度问题 (停k层的解法) (正在怀疑该解法的正确性)
- 编程之美1.8小飞的电梯调度算法扩展问题
- 【原创】编程之美---小飞的电梯调度问题 (停k层的解法)
- 重新开始战斗06-编程之美-电梯调度问题
- 第一次结队编程(电梯调度问题)
- 编程之美-小飞的电梯调度算法另一种解
- 结对开发——电梯调度问题需求分析
- 石家庄铁道大学基础教学楼电梯调度问题
- 读书笔记之编程之美 - 1.8 小飞的电梯调度算法
- 结对开发3----电梯调度问题
- 电梯调度问题之成长总结篇(二)
- 体验结对开发的乐趣(6)--(电梯调度问题)
- PairWork-电梯调度程序结对编程
- 编程解决各种问题(二) ----------------Flash 经典智力游戏(二) 和尚和鬼的故事
- 编程之美--游戏之乐--1.4买书问题(改进解法)
- 编程之美 1.8 小飞的电梯调度算法
- 结对编程项目--电梯调度
- 【转】结对编程之电梯调度程序的GUI实现