前端编程题:已知一个包含n个数字的数组A,其中连续多个数字的和为sum,请找出该连续数字的初始索引start和结束索引end
2条回答 默认 最新
- @胡海龙 2022-02-15 07:40关注
const arr1 = [7,5,4,3,1,2,3,4,5,6,0] //测试1 const arr2 = [1,2,3,4,5,6,7,8,9,0] //测试2 const arr3 = [10] //测试3 const arr4 = [12,23,1,2,3,4,5,6,7] //测试4 const sum = 10 //测试5 function findIndex(arr,sum){ let tempSum = 0; let backIndex = 0; let endIndex = -1; let currentIndex = 0; for(currentIndex; currentIndex<arr.length; currentIndex++){ tempSum+=arr[currentIndex]; if(sum<tempSum){ backIndex += 1; currentIndex = backIndex; tempSum = 0; }else if(sum == tempSum){ endIndex = currentIndex; break; } } if(endIndex==-1){ console.log("没有找到") }else{ console.log("startIndex:",backIndex==0?0:backIndex+1); console.log("endIndex:",endIndex); } } //执行测试 findIndex(arr4,sum);
使用一次for循环,上述五种情况测试均正确,运行结果如下:
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报