查找数组中等于sum-Javascript的元素索引
我试图找到数组中元素的索引等于指定的和。 我只需要2个索引查找数组中等于sum-Javascript的元素索引,javascript,Javascript,我试图找到数组中元素的索引等于指定的和。 我只需要2个索引 函数sumArrayHashTable(arr,sum){ var结果=[]; var hashTable={}; 对于(变量i=0;i
函数sumArrayHashTable(arr,sum){
var结果=[];
var hashTable={};
对于(变量i=0;i
函数sumArrayHashTable(arr,sum){
var结果=[];
对于(变量i=0;i
结果将是[[2,4],[5,6]]
加上[[4,2],[6,5]]
您可以从现在开始使用它
算法很简单,
O(n^2)
在数组上循环一次,然后再次找到等于9的和,使用哈希表存储索引而不是值。此外,在结果数组中推送索引:
函数sumArrayHashTable(arr,sum){
常量结果=[];
常量哈希表={};
for(设i=0;i //结果应该是[[2,4],[5,6]]
不应该[1,2,3]
和[0,2,4]
是结果集的一部分?抱歉。我只需要2个索引。编辑了这个问题。所以i
是你的索引,不是吗?是的,我是索引我可以打印数字,但不能打印索引
-这些索引是你的i
我想要使用哈希表。@a2441918所以将哈希表应用于我的答案,伙计,或者指定你的问题
function sumArrayHashTable(arr, sum) {
var result = [];
for (var i = 0; i < arr.length; i++) {
var test = 0;
for (var j = 0; j < arr.length; j++) {
if (i === j) {
continue ;
}
test = arr[i] + arr[j];
if (test === sum) {
result.push([i, j]);
}
}
}
return result;
}
console.log(sumArrayHashTable([5, 2, 6, 1, 3, 9, 0], 9));