QuarkXPress history 软件测试工程师 mysql less http excel react router 八大员 vue版本 vue异步加载组件 matlab根号怎么打出来 bitlocker加密好慢 mysql删除表 python创建数据库 java开发 java使用 java中的tostring java数据类型 java环境安装 java函数式接口 java数组添加值 java编程语言 java线程中断 java流程 java中long java截取 微信客户管理系统 51脚本 思源黑体cn 方正兰亭字体下载 模拟按键 办公室复印机使用方法 华为ff xapk安装器 脚本学习 保卫萝卜沙漠7攻略 魔兽天龙八部 qt5下载 js文件上传插件
当前位置: 首页 > 学习教程  > 编程语言

(js)leetcode 724. 寻找数组的中心索引

2021/1/28 23:51:47 文章标签:

题目: 给你一个整数数组 nums,请编写一个能够返回数组 “中心索引” 的方法。 数组 中心索引 是数组的一个索引,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果数组不存在中心索引,返回 -1 。如果数组有多个中心索引&…

题目:

给你一个整数数组 nums,请编写一个能够返回数组 “中心索引” 的方法。

数组 中心索引 是数组的一个索引,其左侧所有元素相加的和等于右侧所有元素相加的和。

如果数组不存在中心索引,返回 -1 。如果数组有多个中心索引,应该返回最靠近左边的那一个。

注意:中心索引可能出现在数组的两端。

 

示例 1:

输入:nums = [1, 7, 3, 6, 5, 6]
输出:3
解释:
索引 3 (nums[3] = 6) 的左侧数之和 (1 + 7 + 3 = 11),与右侧数之和 (5 + 6 = 11) 相等。
同时, 3 也是第一个符合要求的中心索引。
示例 2:

输入:nums = [1, 2, 3]
输出:-1
解释:
数组中不存在满足此条件的中心索引。
示例 3:

输入:nums = [2, 1, -1]
输出:0
解释:
索引 0 左侧不存在元素,视作和为 0 ;右侧数之和为 1 + (-1) = 0 ,二者相等。
示例 4:

输入:nums = [0, 0, 0, 0, 1]
输出:4
解释:
索引 4 左侧数之和为 0 ;右侧不存在元素,视作和为 0 ,二者相等。
 

提示:

nums 的长度范围为 [0, 10000]。
任何一个 nums[i] 将会是一个范围在 [-1000, 1000]的整数。

思路:

使用前缀和

可查看 官方思路

代码实现:

/**
 * @param {number[]} nums
 * @return {number}
 */
var pivotIndex = 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;
};

运行结果:


本文链接: http://www.dtmao.cc/news_show_650316.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?