对于 CodeWars 上的这个 Kata Level 6 问题,9 个测试中有8个通过了。奇怪的事情:CodeWars 不会告诉我哪个测试用例失败了。
这是我的代码。也许这里有人可以帮忙?太感谢了。
function tickets(peopleInLine) {
var totalChange = 0;
for (var i = 0; i < peopleInLine.length; i++) {
if (peopleInLine[i] === 25) totalChange += 25;
if (peopleInLine[i] > 25) {
var change = peopleInLine[i] - 25;
if (totalChange < change) return "NO";
if (totalChange >= change) totalChange -= change;
}
}
return "YES";
}
这是问题:
新的“复仇者联盟”电影刚刚上映!电影院售票处有很多人排着长队。他们每个人都有一张 100、50 或 25 美元的钞票。“复仇者联盟”的门票价格为 25 美元。
Vasya 目前是一名文员。他想把一张票卖给这条线上的每个人。
如果 Vasya 最初没有钱并严格按照人们排队的顺序出售门票,Vasya 是否可以向每个人出售一张票并给他找零?
返回YES,如果 Vasya 可以向每个人出售一张票并给零钱。否则返回NO。
例子:
tickets([25, 25, 50]) // => YES
tickets([25, 100]) // => NO. Vasya will not have enough money to give change to 100 dollars