首页 > 其他分享 >剑指Offer|LCR 012. 寻找数组的中心下标

剑指Offer|LCR 012. 寻找数组的中心下标

时间:2024-12-23 15:57:53浏览次数:10  
标签:下标 中心 nums Offer sum1 012 数组 左侧 LCR

LCR 012. 寻找数组的中心下标

给你一个整数数组 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 <= 104
  • -1000 <= nums[i] <= 1000

法1:

分析:

先计算nums所有的和。

然后遍历数组,先比较,当前sum1是否等于allSum - sum1 - nums[i],相等则说明i是中心下标,接着sum1接着计算左侧的值;

如果找不到的话,直接返回-1。

在这里插入图片描述

时间复杂度O(n)

空间复杂度O(1)

var pivotIndex = function(nums) {
    let allSum = 0;   // 数组所有元素的和
    let sum1 = 0;     // 当前下标左侧的和

    // 计算数组所有元素的和
    for (let num of nums) {
        allSum += num;
    }

    // 遍历数组,判断当前下标是否为中心下标
    for (let i = 0; i < nums.length; i++) {
        // 判断左侧和是否等于右侧和
        if (sum1 === allSum - sum1 - nums[i]) {
            return i;
        }
        // 更新左侧和
        sum1 += nums[i];
    }

    // 如果没有找到符合条件的中心下标,返回 -1
    return -1;
};

标签:下标,中心,nums,Offer,sum1,012,数组,左侧,LCR
From: https://blog.csdn.net/Catherinemin/article/details/144670316

相关文章

  • d3dcompiler_42.dll未被指定在Windows运行,代码0xc0000020或0xc000012f解决办法
    在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包文件不完整造成,原因可能是某些系统防护软件将重要的DLL文件识别为可疑,阻止并放入了隔离单里,还有一些常见的DLL文件缺少是因为系统没有安装齐全的微软运行库,还有部分情况是因为......
  • d3dcompiler_41.dll未被指定在Windows运行,代码0xc0000020或0xc000012f解决办法
    在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包文件不完整造成,原因可能是某些系统防护软件将重要的DLL文件识别为可疑,阻止并放入了隔离单里,还有一些常见的DLL文件缺少是因为系统没有安装齐全的微软运行库,还有部分情况是因为......
  • D3Dcompiler_46.dll未被指定在Windows运行,代码0xc0000020或0xc000012f解决办法
    在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包文件不完整造成,原因可能是某些系统防护软件将重要的DLL文件识别为可疑,阻止并放入了隔离单里,还有一些常见的DLL文件缺少是因为系统没有安装齐全的微软运行库,还有部分情况是因为......
  • D3DCompiler_47.dll未被指定在Windows运行,代码0xc0000020或0xc000012f解决办法
    在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包文件不完整造成,原因可能是某些系统防护软件将重要的DLL文件识别为可疑,阻止并放入了隔离单里,还有一些常见的DLL文件缺少是因为系统没有安装齐全的微软运行库,还有部分情况是因为......
  • 数智读书笔记系列012 How to Build Your Career in AI 吴恩达
    “HowtoBuildYourCareerinAI”一文主要介绍吴恩达对AI技术运用的见解。吴恩达认为AI的作用之于如今的人类,类似电力之于前人,会改变人类生活的各个领域,他在文中为AI从业者提供了一些职业规划建议。吴恩达强调基础学习在建立AI职业生涯中至关重要,是开启和持续发......
  • 题解:AT_arc008_3 [ARC008C] THE☆たこ焼き祭り2012
    思路看到$N\leq1000$,我们立马想到Floyd,把每个人都当作点,把传递小丸子所需的时间当作边权去建边。最后直接跑一遍Floyd就好了。AC代码#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;constintN=1e3+10;intx[N],y[N],t[N],r[N],n;doubled......
  • LCR 164. 破解闯关密码
    破解闯关密码闯关游戏需要破解一组密码,闯关组给出的有关密码的线索是:一个拥有密码所有元素的非负整数数组password密码是password中所有元素拼接后得到的最小的一个数请编写一个程序返回这个密码。示例1:输入:password=[15,8,7]输出:"1578"示例2:输入:pas......
  • 礼物的最大价值 剑指offer
    题目描述       在一个m*n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向左或者向下移动一格,直到到达棋盘的右下角。给定一个棋盘及其上面的礼物,请计算你最多能拿到多少价值的礼物?思路分析  ......
  • 求职者必备:如何用管理软件实现高效的Offer规划
    一、毕业季Offer规划的复杂性毕业季的Offer规划不仅仅是简单的找工作过程,更是一次紧张的时间赛跑。从投递简历、面试安排、薪资谈判到最终的决定,整个过程充满了大量的任务和步骤。这些任务和环节涉及不同的公司、职位要求、面试形式以及其他各种变量。如果没有一个高效的工具来帮......
  • DevExpress offers a robust suite CRACK
    DevExpressoffersarobustsuiteCRACKDevExpressv24.2addsAI-poweredextensionsforadvanceddocumentediting,smartactions,andversatileAIchatcomponentsacrossplatforms.DevExpressoffersarobustsuiteofdevelopertoolsdesignedto......