新的「復仇者」電影剛剛發佈!電影票房有很多人站在一條巨大的線上。他們每個人都有一張100美元,50美元或25美元的賬單。 「復仇者」票價25美元。無法通過codewar的測試用例
Vasya目前是一名職員。他想把票賣給這條線上的每一個人。
Can Vasya可以向每個人出售一張門票,如果他最初沒有錢,並且按照人們遵循的順序嚴格銷售門票,那麼可以給予更改?
返回YES,如果Vasya可以向每個人出售機票並進行更改。否則返回NO。
例如,
Line.Tickets(new int[] {25, 25, 50}) // => YES
我能夠通過10個測試用例中的11個,但對於1個測試用例,它顯示我的結果是錯誤的。
說, 輸入=>Line.Tickets(new int[] {25,50,25,100})
我的代碼的輸出=
NO
如果第一人有25 $ bill-> count25 = 1和count50 = 0,如果第二人有50美元的賬單 - >計數50 = 1和計數25 = 0,如果第三方有25美元的賬單 - >計數50 = 1和計數25 = 1,如果第四方有100美元的賬單 - >計數50 = 0和計數25 = 0
public class Line {
public static String Tickets(int[] peopleInLine) {
int count25 = 0;
int count50 = 0;
for (int i = 0; i < peopleInLine.length; i++) {
if (peopleInLine[i] == 100) {
if (count25 == 1 && count50 > 0) {
count25 = count25 - 1;
count50 = count50 - 1;
}
if (count25 >= 3) {
count25 = count25 - 3;
} else {
return "NO";
}
}
if (peopleInLine[i] == 25) {
count25 = count25 + 1;
}
if (peopleInLine[i] == 50) {
count50 = count50 + 1;
count25 = count25 - 1;
if (count25 < 0) {
return "NO";
}
}
}
return "YES";
}
}
如果你讓別人用100美元的鈔票,你有2分25秒和1個50?你應該能夠給他改變,但我沒有看到這個選項。 – JackVanier
那麼,當您發出** NO **響應時,關鍵變量的值是什麼?我看不到試圖去調試。 – Prune
@JackVanier,我在代碼 – CryBaby