亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有人遇到過這個問題哈!求悉心解答 寫思路 :

有沒有人遇到過這個問題哈!求悉心解答 寫思路 :

慕田峪9158850 2019-08-05 22:45:46
寫一個函數,輸入一個數組a,找到里面是否存在三個不同的元素,使得a[i]+a[j]==a[k]。如果能找到輸出true,找不到輸出false舉例:>輸入vara1=[1,5,10,25,9,17,100];輸出false>>輸入vara2=[2,99,3,5];可以找到2+3=5,因此輸出true>>輸入vara3=[1,50,0,5];輸出false求大神講解
查看完整描述

2 回答

?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

functionsearch(arr){
for(vari=0;i//第一層循環列舉出所有待計算的左邊數字
varleft=arr[i];
for(varj=i+1;j//枚舉出所有參與計算的右邊數字,下標位于該數字后面
varright=arr[j];
//將計算結果位于數組中的下標與前面兩個數字的下標做對比
vark=arr.indexOf(left+right);
//從你的舉例來看該結果不僅不能重復還必須在加數下標的后面,故直接跟下標j比較
if(k>j)returntrue;
}
}
returnfalse;
}
console.log(search(a1));
console.log(search(a2));
console.log(search(a2));
                            
查看完整回答
反對 回復 2019-08-05
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

可以把數組放到一個MAP里,KEY=INDEXVALUE=數組中的數字FORKEY1INMAPFORKEY2INMAP
IFKEY1==KEY2
CONTINUE
IFMAP.CONTAINS(VALUE1-VALUE2)
RETURNTRUE
                            
查看完整回答
反對 回復 2019-08-05
  • 2 回答
  • 0 關注
  • 376 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號