LeetCode724. 寻找数组的中心下标

这篇具有很好参考价值的文章主要介绍了LeetCode724. 寻找数组的中心下标。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题干

给你一个整数数组 nums ,请计算数组的 中心下标 

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

如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。

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

示例1:

输入:nums = [1, 7, 3, 6, 5, 6]
输出:3
解释:
中心下标是 3 。
左侧数之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,
右侧数之和 sum = nums[4] + nums[5] = 5 + 6 = 11 ,二者相等。

示例2:

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

示例3:

输入:nums = [2, 1, -1]
输出:0
解释:
中心下标是 0 。
左侧数之和 sum = 0 ,(下标 0 左侧不存在元素),
右侧数之和 sum = nums[1] + nums[2] = 1 + -1 = 0 。

提示:

  • 1 <= nums.length <= 10^4
  • -1000 <= nums[i] <= 1000

解题思路

        本题的意思就是,一个数组中有若干元素,是否存在一个数,它的左边元素的和与它的右边元素的和相等,若存在,输出这个数的下标;若不存在,输出-1。

        如示例1所示,1+7+3=11,5+6=11,存在元素6,它的两边各自元素和相等。LeetCode724. 寻找数组的中心下标,算法,数据结构

        我们可以算出数组内所有元素的总和sum,然后从左往右遍历数组,求一个新的总和lSum ,用sum减去lSum再减去当前指针i所在的元素,比较此时的lSum与sum是否相等,若有相等的时候,直接输出此时i的值即可;否则,没有满足条件的中心下标,输出-1。

        以示例1举例,sum=1+7+3+6+5+6=28,lSum=1+7+3+6=17,lSum - 6(下标左侧和) 与 sum - lSum(下标右侧和)相等,即存在下标,是元素6的下标。文章来源地址https://www.toymoban.com/news/detail-628578.html

AC代码

class Solution {
    public int pivotIndex(int[] nums) {
        int lSum = 0, sum = 0;
        
        for(int num : nums ){
            sum = sum + num;
        }
        for(int i=0;i<nums.length;i++){
            lSum = lSum + nums[i];
            sum = sum - nums[i];
            if(lSum - nums[i] == sum ){
                return i;
            }
        }
        return -1;
    }
}

到了这里,关于LeetCode724. 寻找数组的中心下标的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C语言】每日一题(寻找数组的中心下标)

    寻找数组的中心下标,链接奉上 ​​​​​​​思路: 依旧是我们的老朋友,暴力循环。 1.可以利用外层for循环,循环变量为数组下标,在循环内分别求出下标左边与右边的sum 2.在边界时讨论, 当下标为左边界(nums[0])时,left sum=0;当下标为右边界(nums[numsSize-1)时,r

    2024年02月13日
    浏览(42)
  • 数据结构 | 寻找二维数组的最大值和对应下标 | C语言代码

    题目:         本题目要求读入M(最大为10)行N(最大为15)列个元素,找出其中最大的元素,并输出其行列值。 输入格式:         输入在第一行中给出行数m和列数n。接下来输入m*n个整数。 输出格式:         输出最大值的行号,列号,值。 输入样例: 2 3 1 2 3 4 5 6 输

    2024年02月05日
    浏览(51)
  • ⭐北邮复试刷题LCR 012. 寻找数组的中心下标__前缀和思想 (力扣119经典题变种挑战)

    给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适

    2024年02月20日
    浏览(44)
  • 【LeetCode】每日一题&&两数之和&&寻找正序数组的中位数&&找出字符串中第一个匹配项的下标&&在排序数组中查找元素的第一个和最后一个位置

    ========================================================================= 主页点击直达: 个人主页 我的小仓库: 代码仓库 C语言偷着笑: C语言专栏 数据结构挨打小记: 初阶数据结构专栏 Linux被操作记: Linux专栏 LeetCode刷题掉发记: LeetCode刷题 算法: 算法专栏  C++头疼记: C++专栏 计算机

    2024年02月08日
    浏览(48)
  • java数据结构与算法刷题-----LeetCode287. 寻找重复数

    java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完): https://blog.csdn.net/grd_java/article/details/123063846 解题思路 弗洛伊德判圈法,也就是快慢指针判圈法(龟兔赛跑算法),此算法分为两个步骤 判断是否有环,并得到快慢指针相遇

    2024年01月24日
    浏览(36)
  • 【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值

    《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌ 更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍 感谢小伙伴 们点赞、关注! class   Solution :      def   mySqrt ( self ,  x :   int )   -   int :       

    2024年02月04日
    浏览(59)
  • 【数据结构】三对角矩阵(带状矩阵)的压缩 数组下标转换

    王道书中给出定义如下: 书中没有给出具体的推导过程,在CSDN上也没搜到,因此我来发一篇(哈哈哈哈哈 推导过程如下: 首先除去第一行。 从第二行开始,当矩阵的下标为(i,j)的时候: 前面一定会有第一行的2个 会有从第2行开始到第i-1行的每行3个,因此是3(i-1-2+1)=3(i-2)

    2024年02月07日
    浏览(44)
  • 【Leetcode每日一题】35.搜素插入位置|二分查找数组下标

    🌱博主简介:大一计科生,努力学习Java中!热爱写博客~预备程序媛 📜所属专栏:LeetCode每日一题–进击大厂 ✈往期博文回顾: 【JavaSE】保姆级教程|1万字+10张图学会类与对象–建议收藏 🕵️‍♂️近期目标:成为千粉小博主。 🌺“再牛的程序员也是从小白开始,既然开始

    2024年02月21日
    浏览(39)
  • 数据结构与算法之数组: Leetcode 89. 格雷编码 (Typescript版)

    格雷编码 https://leetcode.cn/problems/gray-code/ 描述 n 位格雷码序列 是一个由 2n 个整数组成的序列,其中: 每个整数都在范围 [0, 2n - 1] 内(含 0 和 2n - 1) 第一个整数是 0 一个整数在序列中出现 不超过一次 每对 相邻 整数的二进制表示 恰好一位不同 ,且 第一个 和 最后一个 整数

    2024年02月02日
    浏览(37)
  • 数据结构与算法之数组: Leetcode 605. 种花问题 (Typescript版)

    种花问题 https://leetcode.cn/problems/can-place-flowers/ 描述 假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。 给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示

    2024年02月02日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包