javascript - 在一个数组中找到一个三元组,该数组总和为javascript中的给定值
问题描述
我正在尝试在 JavaScript 中解决这个问题:给定一个数组和 JavaScript 中的一个值,查找数组中是否存在一个三元组,其总和等于给定值。如果数组中存在这样的三元组,则打印三元组并返回 true。否则返回假。
现在,我写了一些代码,但由于某种原因,它不能正常工作。这是代码:
A = [1, 4, 45, 6, 10, 8];
sum = 15;
x = A.length;
function find3Numbers(A, x, sum) {
for (i=0; i<(x-2); i++) {
for (j=i+1; j<(x-1); j++) {
for (k=j+1; x; k++) {
if (A[i] + A[j] + A[k] == sum) {
console.log(A[i]);
console.log(A[j]);
console.log(A[k]);
return true
}
return false
}
}
}
}
console.log(find3Numbers(A, x, sum));
现在,当我运行代码时,我收到一条“错误”消息。任何想法,为什么会这样?
解决方案
false
如果您尝试的第一个三元组不匹配,您将立即返回,而您应该在所有循环完成后才这样做。
A = [1, 4, 45, 6, 10, 8];
sum = 15;
x = A.length;
function find3Numbers(A, x, sum) {
for (i = 0; i < (x - 2); i++) {
for (j = i + 1; j < (x - 1); j++) {
for (k = j + 1; x; k++) {
if (A[i] + A[j] + A[k] == sum) {
console.log(A[i]);
console.log(A[j]);
console.log(A[k]);
return true
}
}
}
}
return false;
}
console.log(find3Numbers(A, x, sum));
推荐阅读
- ckeditor5 - ckeditor 5,图像src到data-src
- django - 在 Django 中仅过滤普通用户而不是员工或超级用户
- python - 在 python 中打印“C:\Users>”
- c - fseek(binaryFile, 0, 1) 将 while 循环停止为无限循环
- django - 石墨烯类应该像这样重复吗?
- lisp - 如果不符合多个条件,则删除
- kubernetes - 使 istio-ingress 与 metallb 裸机 kubernetes 集群一起工作
- c# - c#使用没有反射的列表访问类的特定成员
- powerbi - 与前一行和乘积相加并除
- java - 如何验证电子邮件(仅包含数字、字母、星号、at、下划线、点)