javascript - 如何在不重复求和元素的情况下多次迭代数组
问题描述
我正在尝试解决这个问题,但我不知道为什么我不能通过所有测试用例。我需要一些帮助和解释,我怎样才能多次计算一些数组(在这个例子中:变量 s)而不重复我已经求和的相同元素。
问题描述:
莉莉有一块巧克力棒,她想和罗恩一起过生日。每个方块上都有一个整数。她决定共享所选条形的连续片段,使得片段的长度与 Ron 的出生月份相匹配,并且正方形上的整数之和等于他的出生日期。你必须确定她可以用多少种方法来分巧克力。
将巧克力棒视为一个正方形数组,
s=[2,2,1,3,2]
。她想找到与 Ron 的出生日期相加的片段,d=4
长度等于他的出生月份,m=2。在这种情况下,有两个片段符合她的标准:[2,2]
和[1,3]
。功能说明
在下面的编辑器中完成生日功能。它应该返回一个整数,表示 Lily 可以分割巧克力棒的方式数。
生日有以下参数:
s:一个整数数组,每个巧克力方块上的数字, d:一个整数,罗恩的生日, m:一个整数,罗恩的出生月份
我的代码:
function birthday(s, d, m) {
let bars = 0;
if (m !== 1) {
s.reduce((acc, val) => (acc+val) === d ? ++bars : bars)
} else {
bars = 1;
}
return bars;
}
一些案例:
s = [2, 5, 1, 3, 4, 4, 3, 5, 1, 1, 2, 1, 4, 1, 3, 3, 4, 2, 1]
d = 18
米 = 7
s = [4, 5, 4, 5, 1, 2, 1, 4, 3, 2, 4, 4, 3, 5, 2, 2, 5, 4, 3, 2, 3, 5, 2, 1 , 5, 2, 3, 1, 2, 3, 3, 1, 2, 5]
d = 18
米 = 6
s = [4, 5, 4, 2, 4, 5, 2, 3, 2, 1, 1, 5, 4]
d = 15
米 = 4
我的代码适用于此:
- s = [1, 2, 1, 3, 2]
- d = 3
- 米 = 2
这可以在 HackerRank > Practice > Algorithms > Implementation 上找到
解决方案
每当您在数组上循环以获得求和或对其进行数学方程式时,您必须删除您已经计算过的特定元素,您可以使用其中一个内置函数来使用特定的数组从数组中删除一个元素指数。 Array.prototype.slice() && Array.prototype.splice()
推荐阅读
- html - 带有下拉菜单的 CSS 水平滚动菜单
- reactjs - 使用钩子对对象进行简单的 setState
- javascript - 有没有办法避免重复代码?
- python - 如何从 Python 列表中弹出多个随机元素?
- xero-api - 使用唯一 ID 识别发票中的产品 - Xero API
- java - 如何在三星 Galaxy S10 或 S10+ 中测试接近传感器?
- css - 锚标记中的 Svg 图标可单击,但在 Microsoft Edge 或 IE 11 中不起作用
- c - 从已知地址访问数组
- javascript - 未捕获的类型错误:无法解析模块说明符 X。相对引用必须以“/”、“./”或“../”开头
- r - 如何在 R 中为随机森林模型运行 ANOVA 函数?