我试图解决以下问题:
首席执行官每天定期检查员工(例如,轮班后的分钟数( started> {5,35,120.}))。计算员工应该在什么时候工作,这样每次CEO检查他们时,他们都在工作。他们的工作需要3分钟才能完成,每次工作再增加3分钟(第一次工作3分钟,第二次工作6分钟,第三次工作9分钟)。
这是我的伪码算法:
int time = 2
for: every CEOcheckTime in 0 to CEOcheckTime.length
add (CEOcheckTimes-time) to results
time = time + 2忽略边缘的情况,在这种情况下,首席执行官检查员工是否能够尽快完成工作,我的算法正确吗?谢谢!
发布于 2019-05-31 20:23:44
忽略“边缘情况”,这似乎很好,除非您的时间是增加2,而不是3,按照规范。
int time = 3
for: every CEOcheckTime in CEOcheckTimes
add (CEOcheckTimes-time) to results
time = time + 3在这里也可以使用类似的时间方法来解释你的边缘情况。
for: every CEOcheckTime in CEOcheckTimes
if exists(time):
if last(results) + time < CEOcheckTime:
add (CEOcheckTimes) to results
time = time + 3
else:
add (CEOcheckTimes) to results
time = 3编辑:我已经假设,如果工作开始/结束的同时进行检查,这就算作工作了。
https://stackoverflow.com/questions/56400980
复制相似问题