当前位置: 首页 > news >正文

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,它的两边各自元素和相等。

        我们可以算出数组内所有元素的总和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的下标。

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. 寻找数组的中心下标

题干 给你一个整数数组 nums &#xff0c;请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标&#xff0c;其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端&#xff0c;那么左侧数之和视为 0 &#xff0c;因为在下标的左侧不存在元素。…...

【云计算 | Docker】Docker容器后台运行不了?entrypoint在作妖?

1. 问题 使用镜像alpine起个容器&#xff0c;使其保持后台运行&#xff0c;正常情况有如下的效果&#xff0c;可以发现容器保持运行状态。 [rootk8s-master helloWorld]# docker run -dit docker.io/alpine /bin/sh 8d39d7579d5e4f1a560aef16ba57ab5cae2506ea9105e21cbc0634…...

DAY02_Spring第三方资源配置管理Spring容器Spring注解开发Spring整合Mybatis和Junit

目录 一 第三方资源配置管理1 管理DataSource连接池对象问题导入1.1 管理Druid连接池1.2 管理c3p0连接池 2 加载properties属性文件问题导入2.1 基本用法2.2 配置不加载系统属性2.3 加载properties文件写法 二 Spring容器1 Spring核心容器介绍问题导入1.1 创建容器1.2 获取bean…...

烘焙小程序蛋糕店烘焙店源码点心店小程序源码

本系统开发使用JAVA技术栈开发 使用uniapp技术栈 支持微信小程序 &#xff0c;对接打印机&#xff0c;对接第三方同城跑腿平台 用户端使用&#xff1a;uniapp 管理端使用&#xff1a;vueelementui 后台服务使用&#xff1a;springbootjpa...

HarmonyOS 开发基础(五)对用户名做点啥

一、实现用户名检验 条件渲染 、生命周期 1.规定用户名长度 2.限定使用的数字及字母&#xff08;涉及正则表达&#xff09; // 导出方式直接从文件夹 import MyInput from "../common/commons/myInput" Entry Component /* 组件可以基于struct实现&#xff0c;组件…...

【前端】搭建Vue3框架

目录 一、搭建准备二、node.js安装1、下载并安装2、配置默认安装目录和缓存日志目录①、创建默认安装目录和缓存日志目录&#xff08;我的node.js目录在D盘&#xff0c;所以直接在node.js文件夹下创建&#xff09;②、执行命令&#xff0c;配置默认安装目录和缓存日志目录到刚才…...

Opencv-C++笔记 (15) : 像素重映射 与 图像扭曲

文章目录 一、重映射简介二、图像扭曲 一、重映射简介 重映射&#xff0c;就是把一幅图像中某位置的像素放置到另一图像指定位置的过程。即&#xff1a; 在重映射过程中&#xff0c;图像的大小也可以同时发生改变。此时像素与像素之间的关系就不是一一对应关系&#xff0c;因…...

【Java】UWB高精度工业人员安全定位系统源码

基于VueSpring boot前后端分离架构开发的一套UWB技术高精度定位系统源码。 UWB高精度人员定位系统提供实时定位、电子围栏、轨迹回放等基础功能以及各种拓展功能,用户可根据实际需要任意选择搭配拓展功能。该系统简易部署&#xff0c;方便使用&#xff0c;实时响应。UWB高精度定…...

文本NLP噪音预处理(加拼写检查)

最近总结修改了下预处理方法&#xff0c;记录下 首先download需要的依赖 pip install pyenchantpip install nltk pyenchant 是用来检测拼写正确的&#xff0c;如果你的文本里面可能包含非正确拼写的单词&#xff0c;那就忽略它&#xff0c;nltk用来做分词的。 python -m nlt…...

[Docker实现测试部署CI/CD----自由风格的CI操作[最终架构](5)]

目录 11、自由风格的CI操作&#xff08;最终&#xff09;Jenkins容器化实现方案修改 docker.sock 权限修改 Jenkins 启动命令后重启 Jenkins构建镜像推送到Harbor修改 daemon.json 文件Jenkins 删除构建后操作Jenkins 添加 shell 命令重新构建 Jenkins通知目标服务器拉取镜像目…...

纯JS+Vue实现一个仪表盘

在使用canvas的时候发现数值变化&#xff0c;每次都要重新渲染&#xff0c;值都从0开始&#xff0c;这和我的需求冲突。 1. 先绘制基本的圆环背景&#xff0c;利用border-color和border-radius将正方形变成基本的圆环。 <div class"circle"><div class&qu…...

标定(内参、外参)

在计算机视觉中&#xff0c;特别是在相机标定和立体视觉领域&#xff0c;内参&#xff08;intrinsic parameters&#xff09;和外参&#xff08;extrinsic parameters&#xff09;是非常重要的概念。它们与相机的几何属性和姿态有关。 内参&#xff08;Intrinsic Parameters&am…...

基于ffmpeg与SDL的视频播放库

由于工作需要&#xff0c;自己封装的基于ffmpeg的视频编解码库&#xff0c;显示采用了SDL库。可以播放本地文件或网络流&#xff0c;支持多端口播放&#xff0c;支持文字叠加&#xff0c;截图、视频录制等等。 头文件代码&#xff1a; #pragma once #ifdef __DLLEXPORT #defin…...

基于二进制草蝉优化算法选择特征并使用 KNN 进行训练(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 基于二进制草蝉优化算法选择特征并使用KNN&#xff08;K-Nearest Neighbors&#xff0c;K最近邻算法&#xff09;进行训练是一种…...

14-4_Qt 5.9 C++开发指南_QUdpSocket实现 UDP 通信_UDP组播

文章目录 1. UDP组播的特性2. UDP 组播实例程序的功能3. 组播功能的程序实现4. 源码4.1 可视化UI设计4.2 mainwindow.h4.3 mainwindow.cpp 1. UDP组播的特性 下图简单表示了组播的原理。UDP 组播是主机之间“一对一组”的通信模式&#xff0c;当多个客户端加入由一个组播地址定…...

ai图片合成软件帮你创造个性绚丽

嘿&#xff01;悄悄告诉你一个小秘密&#xff0c;现在有一款超酷的软件&#xff0c;它能让你的图片变得活灵活现&#xff0c;就像跳出了屏幕一样&#xff01;没错&#xff0c;这就是ai图片制作软件&#xff01;想象一下&#xff0c;你拍摄了一张美丽的风景照片&#xff0c;但总…...

git 版本回退

git 没有push之前&#xff0c;可以用git reset --mixed回退&#xff0c;就是把add 的内容和commit的内容都撤销 在push之后&#xff0c;你只有2种操作 1.git reset 退回到你想要的那个版本 有配置选项 如果是soft就是当前版本删掉&#xff0c;之前改的代码保留&#xff0c;ha…...

使用Jackson自定义序列化操作(Jackson – Custom Serializer)

目录 Standard Serialization of an Object GraphCustom Serializer on the ObjectMapperCustom Serializer on the Class Standard Serialization of an Object Graph Data NoArgsConstructor AllArgsConstructor public class Item {public int id;public String itemName;p…...

Python-元组

元组&#xff08;Tuples&#xff09;详解 在Python中&#xff0c;元组&#xff08;Tuples&#xff09;是一种有序的数据类型&#xff0c;它可以包含任意类型的元素&#xff0c;包括数字、字符串、列表等。与列表相似&#xff0c;元组也是用来存储一组数据&#xff0c;但与列表…...

快速转换PDF文件: Python和PyMuPDF教程

解决问题 有时候将文档上传Claude2做分析&#xff0c;有大小限制&#xff0c;所以需要切割pdf文档为几个小点的文档&#xff0c;故才有了本文章。 如何用Python和PyMuPDF制作你想要大小的PDF&#xff1f; PDF是一种广泛使用的文件格式&#xff0c;可以在任何设备上查看和打印…...

华为OD机试真题 新系统-等距二进制判断(C/C++/Py/Java/Js/Go)

等距二进制判断 华为OD机试新系统真题 华为OD上机考试新系统真题 5月20号 100分题型 华为OD机试新系统真题目录点击查看: 华为OD机试真题题库目录&#xff5c;机考题库 算法考点详解 题目内容 对于一个二进制数&#xff0c;我们定义相邻两个 111 之间 000 的数量为他们两个…...

PixelFlasher:5分钟掌握Pixel设备刷机与Root管理的终极指南

PixelFlasher&#xff1a;5分钟掌握Pixel设备刷机与Root管理的终极指南 【免费下载链接】PixelFlasher Pixel™ phone flashing GUI utility with features. 项目地址: https://gitcode.com/gh_mirrors/pi/PixelFlasher PixelFlasher是一款专为Google Pixel设备设计的图…...

macOS运行Windows程序的终极指南:Whisky完全攻略

macOS运行Windows程序的终极指南&#xff1a;Whisky完全攻略 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 想在Mac上无缝运行Windows软件和游戏&#xff0c;但又不想安装虚拟机或双…...

yolo11红外光伏板图像识别 光伏板缺陷检测系统

YOLOv11光伏板热缺陷检测系统是一种利用先进的YOLOv11算法进行太阳能光伏板缺陷识别的解决方案。这种系统通常会包含以下几个关键部分&#xff1a; 安装教程 1.安装minconda 2.pycharm 3.安装cuda&#xff08;11.0&#xff09;&#xff08;下载链接&#xff1a;https://develop…...

从‘Hello World’到工业通信:我的第一个C++ ADS客户端连接倍福PLC踩坑实录

从零搭建C ADS客户端&#xff1a;一位工程师的倍福PLC连接实战手记 第一次在Visual Studio里看到那个红色的编译错误时&#xff0c;我盯着屏幕足足愣了五分钟。"LNK2019: 无法解析的外部符号 __imp_AdsPortOpen"&#xff0c;这行冰冷的报错彻底击碎了我以为照着官方…...

17 ThingsBoard网关设备-子设备数据模型实战:核心价值+完整落地指南

ThingsBoard网关设备-子设备数据模型实战&#xff1a;核心价值完整落地指南 一、任务说明 1.1 场景必要性 在物联网&#xff08;IoT&#xff09;/工业物联网&#xff08;IIoT&#xff09;场景中&#xff0c;「网关设备-子设备」层级数据模型是解决异构设备批量接入、统一管理…...

蓝牙、Wi-Fi、5G、NB-IoT四大无线技术核心差异与选型指南

1. 无线通信技术全景概览&#xff1a;从身边到万物每天一睁眼&#xff0c;我们就被各种看不见的“波”包围着。手机自动连上家里的Wi-Fi&#xff0c;耳机里传来蓝牙音箱的音乐&#xff0c;出门后手机信号满格&#xff0c;甚至街边的智能路灯、家里的智能电表&#xff0c;都在悄…...

用C语言搞定PTA数据结构7-1天梯地图:迪杰斯特拉算法实战与避坑指南

从零实现PTA天梯地图&#xff1a;双权重迪杰斯特拉算法全解析 当面对PTA数据结构7-1天梯地图这类双权重图的最短路径问题时&#xff0c;许多初学者会陷入算法选择的困境。本文将彻底拆解如何用C语言实现这一经典题目&#xff0c;不仅教你写出能AC的代码&#xff0c;更重要的是掌…...

美团/京东/淘宝闪购外卖红包天天领取口令推荐最新发布今日实测有效的外卖红包每天免费领取入口

今日实测有效可领取外卖红包口令是&#xff1a;淘宝APP在闪购外卖下搜索外卖红包领取口令【 188288 】、美团APP搜索外卖红包领取口令是【 188288 】、词令直达美团/京东/淘宝闪购外卖红包领取口令是【 188288 】。作为天天点外卖的上班族&#xff0c;每天下单前先通过推荐的外…...

BEP-20代币全解析:从原理到实战,赋能Web3开发

BEP-20代币全解析&#xff1a;从原理到实战&#xff0c;赋能Web3开发 引言 在百花齐放的区块链世界中&#xff0c;币安智能链&#xff08;BNB Chain&#xff09; 凭借其低廉的手续费与闪电般的交易速度&#xff0c;迅速成为众多开发者和项目方的热土。而这一切繁荣生态的基石…...