LeetCode每日一题:找数组的中心索引(No.724)

栏目: 编程工具 · 发布时间: 5年前

给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。
我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。
如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。
复制代码

示例:

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

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

思考:

先遍历求出全部数组元素的和sum。
之后从头开始遍历求和,每次循环判断左半边元素的和的两倍再加上中间元素,如果结果与sum相等,则说明此时索引即为中心索引。
复制代码

实现:

class Solution {
    public int pivotIndex(int[] nums) {
        int leftSum = 0, sum = 0;
        for (int num : nums) {
            sum = sum + num;
        }
        for (int count = 0; count <= nums.length - 1; count++) {
            if (count == 0) {
                leftSum = 0;
            } else {
                leftSum += nums[count - 1];
            }
            if (leftSum * 2 + nums[count] == sum) {
                return count;
            }
        }
        return -1;
    }
}复制代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Learning jQuery

Learning jQuery

Jonathan Chaffer、Karl Swedberg / Packt Publishing / 2007-7-7 / GBP 24.99

jQuery is a powerful JavaScript library that can enhance your websites regardless of your background. In this book, creators of the popular jQuery learning resource, learningquery.com, share the......一起来看看 《Learning jQuery》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具