2016去哪儿编程题:乘坐公交
從小明家所在公交站出發(fā)有n路公交到公司,現(xiàn)給出每路公交的停站數(shù)(不包括起點(diǎn)和終點(diǎn)),及每次停的時(shí)間(一路車在每個(gè)站停的時(shí)間相同)和發(fā)車的間隔,先假定每輛車同時(shí)在相對(duì)時(shí)間0分開始發(fā)車,且所有車在相鄰兩個(gè)站之間的耗時(shí)相同,都為5分鐘。給定小明起床的相對(duì)時(shí)間(相對(duì)0的分鐘數(shù)),請(qǐng)計(jì)算他最早到達(dá)公司的相對(duì)時(shí)間。
給定每路車的停站數(shù)stops,停站時(shí)間period,發(fā)車間隔interval及公交路數(shù)n,出發(fā)時(shí)間s。請(qǐng)返回最早到達(dá)時(shí)間。保證公交路數(shù)小于等于500,停站數(shù)小于等于50。
解題
注意:
始發(fā)站不需要等待,到時(shí)間直接運(yùn)行
路上花費(fèi)時(shí)間 = 小明等待時(shí)間 + 公交車運(yùn)行時(shí)間 + 公交車站等待時(shí)間 ?
小明到達(dá)時(shí)間 = 起床時(shí)間 + 路上花費(fèi)時(shí)間
import java.util.*;public class TakeBuses {public int chooseLine(int[] stops, int[] period, int[] interval, int n, int s) {// write code hereint Min = Integer.MAX_VALUE;int time = 0;for(int i = 0;i<n;i++){time = getTime(stops[i] , period[i], interval[i],s);Min = Math.min(time,Min);}return Min + s;}// 路程所需時(shí)間public int getTime(int stop,int period,int interval,int s){// 等車時(shí)間int wait = interval - s%interval;if(wait == interval)wait = 0;// 人等待時(shí)間 + 相鄰兩站運(yùn)行時(shí)間 + 站停的 時(shí)間int time = wait + (stop + 1) * 5 + period * stop;return time;} }?
轉(zhuǎn)載于:https://www.cnblogs.com/theskulls/p/5383964.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的2016去哪儿编程题:乘坐公交的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用coreData
- 下一篇: 请善用工具审核您的内核代码:)