- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
问题陈述
爱丽丝想给她类的 children 一些糖果。所有的 child 都坐成一排(他们的位置是固定的),每个 child 根据他或她在类里面的表现有一个评分。爱丽丝想给每个 child 至少 1 颗糖果。如果两个 child 并排坐着,那么评分高的 child 一定会得到更多的糖果。爱丽丝想省钱,所以她需要尽量减少给 children 的糖果总数。
输出包含 Alice 必须购买的最少糖果数量的一行。
示例输入
3 (no of students )
1 (individual scores)
2
2
示例输出
4
我的解决方案:
arr = []
for i in range(int(input())):
arr.append(int(input()))
# candy left to right, candy right to left, and candy array
candy_lr = [1]*(len(arr))
candy_rl = [1]*(len(arr))
candy = []
# traverses from left to right and assigns candy to students
for i in range(1,len(arr)):
if arr[i]>arr[i-1]:
candy_lr[i] = candy_lr[i-1]+1
# traverses from right to left and assigns candy to students
for i in range(len(arr)-2,0,-1):
if arr[i]>arr[i+1]:
candy_rl[i] = candy_rl[i+1]+1
#calculates the total candy needed
for i in range(0,len(arr)):
candy.append(max(candy_lr[i],candy_rl[i]))
print(sum(candy))
但是,此解决方案仅通过了 11/15
测试用例。这是一个样本 input .对于上述输入,输出应为 33556
但我的输出是 33555
,在所有 4 个失败的测试用例中,我的输出与预期输出相差 1
。我用笔和纸尝试了 15 个元素,效果很好。有没有我遗漏的极端情况?
最佳答案
您的代码有一个索引错误。范围函数不包括最终索引。
for i in range(len(arr)-2,0,-1):
应该是
for i in range(len(arr)-2,-1,-1):
例如:输入
3
2
1
1
当正确答案为 4
时,您的代码输出 3
。
关于algorithm - HackerRank 糖果分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39106420/
爱丽丝是一名幼儿园老师。她想给类的 children 一些糖果。所有的 child 都坐成一排,每个 child 都根据自己平时的表现打分。爱丽丝想给每个 child 至少 1 颗糖果。因为 chil
我在比赛的某个地方发现了这个问题,但还没有想出解决方案。 The boy has apples and keeps in boxes. In one box no more than N/2. How
昨天我参加了 Google code jam 比赛。有糖果 split 问题。 http://code.google.com/codejam/contest/dashboard?c=975485#s=
我正在尝试解决 hackerrank在 JavaScript 中挑战,虽然对于大多数测试实例,我的解决方案都执行得很好,但我不断地遇到其中一些的超时(Hackerrank 将其设置为 10 秒以用于
我是一名优秀的程序员,十分优秀!