「优选算法刷题」:寻找数组的中心下标

一、题目

给你一个整数数组 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 。

二、思路解析

这道题我是通过前缀和算法来解出的,而且要用到 2 个前缀和数组。

其中一个记录前面所有元素的和,一个记录后面所有元素的和。

最后再遍历这 2 个数组,看有没有值相等的元素,有的话就是中心下标了。

三、完整代码

class Solution {public int pivotIndex(int[] nums) {int n = nums.length;int[] f = new int[n];int[] g = new int[n];for(int i = 1 ; i < n ; i ++){f[i] = f[i - 1] + nums[i - 1];}for(int i = n-2 ; i >= 0 ; i --){g[i] = g[i + 1] + nums[i + 1];}for(int i = 0 ; i < n ; i++){if(f[i] == g[i]){return i;}}return -1;}
}

以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/688892.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么测试阿里云香港服务器是不是cn2?

阿里云服务器是CN2线路吗&#xff1f;云服务器BGP多线精品网络线路是cn2&#xff0c;香港轻量应用服务器不是cn2。 如何测试是不是中国电信cn2网络线路&#xff1f;可以本地公网 mtr 该公网IP地址看下是否走的CN2线路&#xff1a; 163骨干网出国的最后一跳IP开头是202.97CN2 …

Deployment

一、Deployment&#xff1a;管理部署发布的控制器 1、背景问题&#xff1a; 应用中的 Pod 如果出现了一些故障&#xff0c;如何保证集群内可用 Pod 的数量&#xff1f; 如何为所有 Pod 更新镜像版本&#xff1f; 在更新过程中&#xff0c;如何保证服务的可用性&#xff1f;…

PyCharm 调试过程中控制台 (Console) 窗口内运行命令 - 实时获取中间状态

PyCharm 调试过程中控制台 [Console] 窗口内运行命令 - 实时获取中间状态 1. yongqiang.py2. Debugger -> Console3. Show Python PromptReferences 1. yongqiang.py #!/usr/bin/env python # -*- coding: utf-8 -*- # yongqiang chengfrom __future__ import absolute_imp…

pytorch入门笔记二

torch.nn.Sequential torch.nn.Sequential是一个容器&#xff0c;利用此容器可以快速简单的搭建一个简单的神经网络。这里以搭建一个三层神经网络为例。 首先该容器的参数分别是上一层到下一层的权重、激活函数&#xff0c;以此循环。 这里torch提供快速生成网络权重的方法&am…

MyBatis框架-动态SQL

动态SQL 什么是动态SQL&#xff1a;动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句. 动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架&#xff0c;你应该能理解根据不同条件拼接 SQL 语句有多痛苦&#xff0c;例如拼接时要确保不能忘记添加必…

Axios学习

文章目录 Axios1.Json-server的搭建2.Axios的基本使用3.Axios的其他使用4.Axios响应结果的结构分析5.Axios配置对象详细说明6.axios的默认配置7.axios创建实例对象&#xff08;create&#xff09;8.axios拦截器1.请求拦截器2.响应拦截器 9.取消请求10.源码分析 Axios 1.Json-s…

小迪安全25WEB 攻防-通用漏洞SQL 读写注入MYSQLMSSQLPostgreSQL

#知识点&#xff1a; 1、SQL 注入-MYSQL 数据库 2、SQL 注入-MSSQL(SQL server) 数据库 3、SQL 注入-PostgreSQL 数据库 #详细点&#xff1a; Access 无高权限注入点-只能猜解&#xff0c;还是暴力猜解 因为access的数据库是独立存在的&#xff0c;不存在统一管理 …

05 SS之结合SS+Redis+JWT实现认证

之前的一切的有一个比较显著的问题是: 假如用户主动登出, 这意味着系统应将用户的token作废, 但实际上并未实现这一步, 导致了即使用户登出, 只要token在有效期内, 用户仍能凭借token直接进入. 即token处于一个无法销毁的状态. 可以借助Redis. 核心步骤是 ① 第一次登陆成…

GitLab安装配置

一、GitLab的简介 GitLab是开源的代码托管平台&#xff0c;提供版本控制功能、代码审查、持续集成等工具&#xff0c;帮助团队协作开发软件项目。用户可以创建仓库存储代码&#xff0c;管理问题追踪&#xff0c;部署自动化流程等。 二、GitLab的安装 1、Rocky_Linux 下载安装 …

c# B+树

B 树是一种自平衡的树数据结构&#xff0c;通常用于数据库和文件系统等需要大量数据插入、删除和搜索操作的场景。与 B 树不同的是&#xff0c;B 树的内部节点不存储数据&#xff0c;只用作索引&#xff0c;所有的数据都存储在叶子节点上。这种特性使得 B 树的数据检索效率更高…

应用回归分析:多重共线性

多重共线性的概念 在回归分析中&#xff0c;我们通常关注的是如何利用一个或多个自变量&#xff08;解释变量&#xff09;来预测一个因变量&#xff08;响应变量&#xff09;。当我们使用多元线性回归模型时&#xff0c;理想的情况是模型中的每一个自变量都能提供独特的、对因…

【嵌入式学习】C++QT-Day6-C++基础

作业&#xff1a; 1.思维导图 见我的博客&#xff1a;https://lingjun.life/wiki/EmbeddedNote/19Cpp 2.编程题&#xff1a; 以下是一个简单的比喻&#xff0c;将多态概念与生活中的实际情况相联系&#xff1a; 比喻&#xff1a;动物园的讲解员和动物表演 想象一下你去了…

2024 前端面试题(GPT回答 + 示例代码 + 解释)No.114 - No.121

本文题目来源于全网收集&#xff0c;答案来源于 ChatGPT 和 博主&#xff08;的小部分……&#xff09; 格式&#xff1a;题目 h3 回答 text 参考大佬博客补充 text 示例代码 code 解释 quote 补充 quote 上一篇链接&#xff1a;2024 前端面试题&#xff08;GPT回答 示例…

汽车网络安全--关于供应商网络安全能力维度的思考

目录 1.关于CSMS的理解 2.OEM如何评审供应商 2.1 质量评审 2.2 网络安全能力评审 3.小结 1.关于CSMS的理解 最近在和朋友们交流汽车网络安全趋势时&#xff0c;讨论最多的是供应商如何向OEM证明其网络安全能力。 这是很重要的一环&#xff0c;因为随着汽车网络安全相关强…

三防平板电脑丨亿道工业三防平板丨三防平板定制丨机场维修应用

随着全球航空交通的增长和机场运营的扩展&#xff0c;机场维护的重要性日益凸显。为确保机场设施的安全和顺畅运行&#xff0c;采取适当的措施来加强机场维护至关重要。其中&#xff0c;三防平板是一种有效的工具&#xff0c;它可以提供持久耐用的表面保护&#xff0c;使机场维…

前端中的强缓存与协商缓存

强缓存&#xff1a;是直接从本地缓存中加载资源&#xff0c;不向服务器发起请求&#xff0c;除非过期了。这种方式可以减少网络延迟&#xff0c;提高页面加载速度&#xff0c;但无法保证资源的最新性 皮一下 : 不管你咋样&#xff0c;我都不搭理你,除非我真的无聊了&#xff0…

微信小程序 搜索框实现模糊搜索(带模拟数据,js,wxml,wxss齐全)

最近在做一个小程序的页面&#xff0c;搜索框困扰了我很久&#xff0c;今天终于把搜索框给做了出来&#xff0c;记录一下过程 我主要使用的就是wx的if&#xff0c;当我输入框用户点击的时候&#xff0c;我前面的显示界面添加上false属性&#xff0c;然后我搜索页面显示出true的…

小程序API能力汇总——基础容器API(三)

ty.getAccountInfo 获取小程序账号信息 需引入MiniKit&#xff0c;且在>3.1.0版本才可使用 参数 Object object 属性类型默认值必填说明completefunction否接口调用结束的回调函数&#xff08;调用成功、失败都会执行&#xff09;successfunction否接口调用成功的回调函数…

【Jvm】类加载机制(Class Loading Mechanism)原理及应用场景

文章目录 Jvm基本组成一.什么是JVM类的加载二.类的生命周期阶段1&#xff1a;加载阶段2&#xff1a;验证阶段3&#xff1a;准备阶段4&#xff1a;解析阶段5&#xff1a;初始化 三.类初始化时机四.类加载器1.引导类加载器&#xff08;Bootstrap Class Loader&#xff09;2.拓展类…

leetcode13题罗马数字转成整数

代码 public static int romanToInt(String s) {// 创建一个HashMap&#xff0c;将罗马数字字符映射为整数值HashMap<Character, Integer> map new HashMap<>();map.put(I, 1);map.put(V, 5);map.put(X, 10);map.put(L, 50);map.put(C, 100);map.put(D, 500);map.…