代码战中的算法混淆

时间:2016-05-03 20:17:09

标签: javascript algorithm math numbers

所以这就是问题所在:

新的“复仇者联盟”电影刚刚上映!电影票房中有很多人站在一条巨大的线上。他们每人都有100,50或25美元的账单。 “复仇者联盟”票价为25美元。

Vasya目前是一名职员。他想向这一行中的每个人出售一张票。

瓦西亚可以向每个人出售一张票,如果他最初没有钱就给出改变,并严格按照人们在线下的顺序出售门票吗?

如果Vasya可以向每个人出售门票并进行更改,则返回YES。否则返回NO。

我的代码:

function tickets(peopleInLine) {
  var speakVasya = "";
  var vasyaValue = 0;
  for (var i = 0; i < peopleInLine.length; i++) {
    if (peopleInLine[i] - 25 > vasyaValue) {
      speakVasya = "NO";
      break;
    } else {
      vasyaValue += 25;
      speakVasya = "YES";
    }
  }
  document.write(speakVasya);
}


tickets([25, 25, 50]);

现场演示 https://jsfiddle.net/py234z11/1/

我的问题是,根据代码大战,我的解决方案通过了7次测试,但在2时失败了,但我无法理解哪些因为它没有给出票证功能的争论。

1 个答案:

答案 0 :(得分:3)

计算他持有的金额是不够的 - 你需要跟踪账单的数量。

例如,如果您有一张100美元的账单,您就无法为50美元或100美元的账单进行更改,您需要特定账单(25美元的账单需要50美元,25美元和50美元或3美元的25美元账单为100美元的账单做出改变。)

因此,不是保留总收入,而是跟踪收集的账单数量。