我正在使用公交车票预订系统。我在预订模块中遇到问题。
假设我们有公共汽车的路线从" A"到" D"通过" B" &安培; " C"
巴士从" A"然后到达" B"然后" C"最终目的地是" D"。
假设某人正在预留座位号" 1"为" B"对于" C",这个座位不适用于正在寻找座位的人来自" A"到" D"或" B"到" D"但同一座位应该适用于" A"到" B"或" C"到" D"
摘要中的示例
座位号1保留用于" B"到" C"
如果已经有一个算法或dotnet c#代码来解决这个问题,请问。
提前致谢
答案 0 :(得分:0)
因为这是一个家庭工作问题,所以给你一个家庭工作答案...
在一张纸上写下你的巴士站
A ---- B ---- C ---- D ---- E ---- F
然后试试这个
将您的左手指放在A
上然后用右手指连续触摸每个字母(B
,C
,D
,E
,F
)并问你的自己是这次旅行的座位(直到你到达F
)。
然后用右手移动左手指B
,连续触摸每个字母(C
,D
,E
,F
并且问你的自己是这次旅行的座位(直到你到达F
)。
然后用你的右手指移动你的左手C
,连续触摸每个字母(D
,E
,F
)并问你自己是这个旅行的座位(直到你到达F
)。
你明白了......
你看到这里发生了什么?你正在慢慢检查每个组合。那么你可能会问的两根手指的重要性是什么?好吧,他们可以被认为是停止列表中的2个索引......
那么我们如何迭代列表并使用你可能会问的2个索引...只需使用2个for
循环,一个在另一个内部
for(var leftFingerIndex = 0; leftFingerIndex < NumberOfStops; leftFingerIndex++)
for(var rightFingerIndex = leftFingerIndex + 1; rightFingerIndex< NumberOfStops; rightFingerIndex++)
// if the your right finger is ever at bus stop were your seat is booked
// then the trip from your left finger to the right + 1 is invalid,
// and all subsequent right finger indexes
现在我可以离开给你写座位和巴士站的课程,但我不会。这是你的工作和你的家庭作业,你足够聪明,可以为自己想出这一切。
祝你好运