博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Equal Sides Of An Array
阅读量:5054 次
发布时间:2019-06-12

本文共 751 字,大约阅读时间需要 2 分钟。

You are going to be given an array of integers. Your job is to take that array and find an index N where the sum of the integers to the left of N is equal to the sum of the integers to the right of N. If there is no index that would make this happen, return -1.

题目意思是在给定数组中找出一个位置,该位置左边部分整数的和和右边部分整数的和相等。如果该位置不存在,返回-1

思路就是遍历整个数组,每次求左右部分的和,比较是否相等,如果相等,就返回该位置。show code:

function findEvenIndex(arr){  var arr1,arr2,font,end;   for(var i=0;i

做完后想想如果存在多个这样的位置呢,可以把符合条件的所有位置找出来。代码稍微改变下就ok了

function findEvenIndex(arr){  var flag=[];  var arr1,arr2,font,end;   for(var i=0;i

就是把所有符合条件的位置存在数组中最后返回。

最后推荐一个时间复杂度为O(n)的算法:

function findEvenIndex(arr){  var sum = arr.reduce((a,b) => a+b);  var l=0;  for(var i=0;i

 

转载于:https://www.cnblogs.com/renbo/p/8007298.html

你可能感兴趣的文章
Eclipse 调试的时候Tomcat报错启动不了
查看>>
【安卓5】高级控件——拖动条SeekBar
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android入门之文件系统操作(二)文件操作相关指令
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
Swift 中的指针使用
查看>>
Swift - 使用闭包筛选过滤数据元素
查看>>
alue of type java.lang.String cannot be converted to JSONObject
查看>>
搜索引擎选择: Elasticsearch与Solr
查看>>
JAVA设计模式之简单工厂模式与工厂方法模式
查看>>
③面向对象程序设计——封装
查看>>
【19】AngularJS 应用
查看>>
Spring
查看>>
Linux 系统的/var目录
查看>>
Redis学习---Redis操作之其他操作
查看>>
WebService中的DataSet序列化使用
查看>>
BZOJ 1200 木梳
查看>>
【Linux】【C语言】菜鸟学习日志(一) 一步一步学习在Linxu下测试程序的运行时间...
查看>>
SpringBoot使用其他的Servlet容器
查看>>
关于cookie存取中文乱码问题
查看>>