1 回答

TA贡献1934条经验 获得超2个赞
错误:
while(remaining > min && max > min) {
count++
max-=d
remaining -= max
}
最大值 > 最小值
当您执行此操作时,您不是在比较当前的最大值与最小值,而是在比较上一次操作的最大值与最小值。
此外,剩余的值应始终大于最大值。
如果 max 大于 m,则您不能以 m 的成本购买商品。
看一下下面的代码,它通过了所有测试用例。
// Complete the how many games function below.
function howManyGames(p, d, m, s) {
// Return the number of games you can buy
if(s<p) return 0
let remaining = s
let max = p
let min = m
let count = 0
while(remaining > min && max > min && remaining > max) {
count++
remaining -= max
max-=d
}
if(max > m)
return count
return count + (m !== 0 ? Math.floor(remaining/m): 0)
}
添加回答
举报