<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>寻找数组的中心索引</title>
</head>
<body>
<script>
/** 数组的中心索引为数组索引处左侧数据之和等于右侧数据之和**/
/** 时间复杂度:O(n) 控件复杂度为O(1) **/
var privotIndex = function (nums) {
const total = nums.reduce((a, b) => a + b, 0);
let sum = 0;
for(let i = 0; i< nums.length; i++) {
if(2 * sum + nums[i] === total) {
return i;
}
sum += nums[i];
}
return -1;
}
const num1 = [1,7,3,6,5,6];
const num2 = [1,2,3];
const num3 = [2,1,-1];
console.log(privotIndex(num1)); // 3
console.log(privotIndex(num2)); // -1
console.log(privotIndex(num3)); // 0
</script>
</body>
</html>
09-15
191
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)