演算法題之路 網易 小易回公司 最快時間

2021-07-30 22:59:43 字數 1335 閱讀 3912

終於到週末啦!小易走在市區的街道上準備找朋友聚會,突然伺服器發來警報,小易需要立即回公司修復這個緊急bug。假設市區是乙個無限大的區域,每條街道假設座標是(x,y),小易當前在(0,0)街道,辦公室在(gx,gy)街道上。小易周圍有多個計程車打車點,小易趕去辦公室有兩種選擇,一種就是走路去公司,另外一種就是走到乙個計程車打車點,然後從打車點的位置坐計程車去公司。每次移動到相鄰的街道(橫向或者縱向)走路將會花費walktime時間,打車將花費taxitime時間。小易需要盡快趕到公司去,現在小易想知道他最快需要花費多少時間去公司。 

輸入描述:

輸入資料報括五行:

第一行為周圍計程車打車點的個數n(1 ≤ n ≤ 50)

第二行為每個計程車打車點的橫座標tx[i] (-10000 ≤ tx[i] ≤ 10000)

第三行為每個計程車打車點的縱座標ty[i] (-10000 ≤ ty[i] ≤ 10000)

第四行為辦公室座標gx,gy(-10000 ≤ gx,gy ≤ 10000),以空格分隔

第五行為走路時間walktime(1 ≤ walktime ≤ 1000)和taxitime(1 ≤ taxitime ≤ 1000),以空格分隔

輸出描述:

輸出乙個整數表示,小易最快能趕到辦公室的時間

輸入例子:

2-2 -2

0 -2

-4 -2

15 3

輸出例子:

看到題目,我是這麼想的,因為去公司只有兩種方式,一種是步行,一種是去乙個打車點打車去公司,而打車點又有好幾個,所以計算每個打車點需要的時間和步行需要的時間,其中最小的時間就是最終的結果。

可以通過乙個min函式進行迭代,來得到通過打車的時間的最少時間,然後再和步行時間做比較,得到最終的輸出。

public class dache 

for(int i = 0; i < n; i++)

int gx = sc.nextint();

int gy = sc.nextint();

int walkt = sc.nextint();

int taxit = sc.nextint();

int drivet = integer.max_value;

int sumwalk = walkt*(math.abs(gx)+math.abs(gy)); //此為步行所用時間

//用迭代的方法得到n個打車點所用的最少時間drivet

for(int i = 0; i < n; i ++)

system.out.println(math.min(sumwalk, drivet)); //打車最短時間和步行時間作比較

}}

網易程式設計題 小易的英語軟體

原題 小易是班級的英語課代表,他開發了一款軟體開處理他的工作。小易的軟體有乙個神奇的功能,能夠通過乙個百分數來反應你的成績在班上的位置。成績超過班級 的同學 設這個百分數為 p,考了 s 分,則可以通過以下式子計算得出 p p 分數不超過 s 的人數 1 班級總人數 突然一天的英語考試之後,軟體突然...

演算法題 小易記單詞

小易參與了乙個記單詞的小遊戲。遊戲開始系統提供了m個不同的單詞,小易記憶一段時間之後需要在紙上寫出他記住的單詞。小易一共寫出了n個他能記住的單詞,如果小易寫出的單詞是在系統提供的,將獲得這個單詞長度的平方的分數。注意小易寫出的單詞可能重複,但是對於每個正確的單詞只能計分一次。輸入描述 輸入資料報括三...

2019網易校招筆試演算法程式設計題 小易橡皮泥

2018.9.8 15 00 17 00 哇這題花了我40分鐘 也沒做出來 直接害得我後面問答題來不及寫!以下為題目的大概描述 小易從橡皮泥的一處切開 即相當於分割字串 然後將兩側橡皮泥同時翻轉,連在一起。根據我的理解,就比如bwbbbww這個字串,假如從第四個b後處切開,翻轉的得到bbwbwwb ...