方法一 暴力破解
for(let i=0;i<str.length;i++){
for(let j=1;j<str.length;j++){
if(str[i]+str[j]==0){
console.log('----',str[i],str[j]);
}
}
}
方法二 优化算法
思路
1.排序
2.设置两个指针,left和right,遍历循环,如果索引left和索引right位置元素和大于给定数组,right–,否则left++
//排序
function sortStr(str1){
for(let i=0;i<str1.length;i++){
for(let j=0;j<str1.length-i-1;j++){
if(str1[j]>str[j+1]){
let temp=str1[j]
str1[j]=str1[j+1]
str1[j+1]=temp
}
}
}
return str1
}
//查找何为num的两个元素
function sumStr(str2,num){
let left=0
let right=str2.length-1
while(left<right){
if(str2[left]+str2[right]>num){
right--
}
else if(str2[left]+str2[right]<num){
left++
}
else{
console.log('---',str2[left],str2[right]);
right--
left++
}
}
}