【算法|前缀和系列No.3】leetcode LCR 012. 寻找数组的中心下标

news/2024/4/20 8:24:34/文章来源:https://blog.csdn.net/m0_74352571/article/details/133859444

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【手撕算法系列专栏】【leetcode)】
🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助
🍓希望我们一起努力、成长,共同进步。
在这里插入图片描述

点击直接跳转到该题目

目录

  • 1️⃣题目描述
  • 2️⃣题目解析
  • 3️⃣解题代码

1️⃣题目描述

给你一个整数数组 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 <= 1 0 4 10^{4} 104
  • -1000 <= nums[i] <= 1000

2️⃣题目解析

前缀和数组l[i],表示下标为i的元素左边元素之和
后缀和数组r[i],表示下标为i的元素右边元素之和

状态转移方程:

  • l[i] = l[i - 1] + nums[i]
  • r[i] = r[i + 1] + nums[i + 1

最后注意本题目的初始化问题,以防造成越界访问。

3️⃣解题代码

class Solution {
public:int pivotIndex(vector<int>& nums) {int n = nums.size();vector<int> l(n),r(n);r[n - 1] = 0;for(int i = 1;i < n;i++) l[i] = l[i - 1] + nums[i - 1];for(int i = n - 2;i >= 0;i--) r[i] = r[i + 1] + nums[i + 1];for(int i = 0;i < n;i++){if(l[i] == r[i]) return i;}return -1;}
};

最后就是通过啦!!!
在这里插入图片描述

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

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

相关文章

深入浅出的介绍一下虚拟机VMware Workstation——part3(VMware快照)

虚拟机VMware使用 前言快照的原理快照的使用 前言 可以先查看之前的2篇博文&#xff0c;学习基础的虚拟机使用 深入浅出的介绍一下虚拟机VMware Workstation——part1 深入浅出的介绍一下虚拟机VMware Workstation——part2(详细安装与使用) 由于我们使用虚拟机的初衷就是用来…

JAVASSMMYSQL高校学生选课系统01483-计算机毕业设计项目选题推荐(附源码)

目 录 摘要 1 绪论 1.1 研究背景 1.2开发意义 1.3ssm框架 1.4论文结构与章节安排 2 2 高校学生选课系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3数据删除流程 2.3 系统功能分析 2.3.1功能性分析 2.3.2非功能性分析…

42.会话划分问题求解(打标)

思路分析&#xff1a; &#xff08;1&#xff09;为每一次浏览找到他的上一次浏览时间 lag(view_timestamp, 1, 0) over(partition by user_id order by view_timestamp) as last_view_timestamp &#xff08;2&#xff09;为&#xff1e;60s的设置一个初始会话的标签flagif(vi…

直播回顾 | 京东科技研发效能度量的大体系与小实践

9 月 27 日思码逸 DevData Talks 邀请到了京东科技测试架构师刘刚。他以《研发效能度量之大体系小实践》为主题&#xff0c;分享了如何以集团的研发效能度量体系作为指引&#xff0c;在所属部门落地适应自己团队和业务特点的度量体系&#xff0c;并取得有效的改进成果。其中他还…

EM@圆和圆锥曲线的参数方程

文章目录 abstract圆的参数方程匀速圆周运动的轨迹从普通方程直接转化为参数方程 任意位置圆心的方程参数方程一般方程例 交点问题的参数方程法 圆锥曲线的参数方程椭圆参数方程例椭圆内接矩形的最大面积问题 抛物线参数方程一般位置的抛物线例 双曲线的参数方程点到双曲线的最…

c++香甜的黄油(acwing)

农夫John发现了做出全威斯康辛州最甜的黄油的方法&#xff1a;糖。 把糖放在一片牧场上&#xff0c;他知道 N 只奶牛会过来舔它&#xff0c;这样就能做出能卖好价钱的超甜黄油。 当然&#xff0c;他将付出额外的费用在奶牛上。 农夫John很狡猾&#xff0c;就像以前的巴甫洛夫…

装配体的模态分析-SOLIDWORKS 2024新功能

修复线性或圆形零部件阵列中缺失的参考 您可以在线性零部件阵列和圆形零部件阵列中修复缺失的方向参考。 对于线性零部件阵列&#xff0c;SOLIDWORKS 通过在零部件上选择参考来修复缺失的方向参考&#xff08;所选参考与 缺失的参考具有相同的类型和方向&#xff0c;而且所选参…

微信公众号怎么从个人转为企业?

公众号账号迁移的作用是什么&#xff1f;只能变更主体吗&#xff1f;1.可合并多个公众号的粉丝、文章&#xff0c;打造超级大V2.可变更公众号主体&#xff0c;更改公众号名称&#xff0c;变更公众号类型——订阅号、服务号随意切换3.可以增加留言功能4.个人订阅号可迁移到企业名…

如何实现 Es 全文检索、高亮文本略缩处理(封装工具接口极致解耦)

如何实现 Es 全文检索、高亮文本略缩处理 前言技术选型JAVA 常用语法说明全文检索开发高亮开发Es Map 转对象使用核心代码 Trans 接口&#xff08;支持父类属性的复杂映射&#xff09;Trans 接口可优化的点高亮全局配置类如下真实项目落地效果为什么不用 numOfFragments、fragm…

关于脑部的基础知识

脑部的基础知识 1 解剖学基本术语&#xff1a;1.1 解剖学方向1.2 解剖学平面1.3 神经元集合体1.4 神经元轴突集合体 2 中枢神经系统CNS2.1 脑 Brain2.1.1 **大脑** 大脑皮层 皮层下结构2.1.2 **间脑** **丘脑 下丘脑 垂体**2.1.3 **中脑 ** **顶盖 ** **大脑脚**2.1.4 脑桥…

Motorola IPMC761 使用边缘TPU加速神经网络

Motorola IPMC761 使用边缘TPU加速神经网络 人工智能(AI)和机器学习(ML)正在塑造和推进复杂的自动化技术解决方案。将这些功能集成到硬件中&#xff0c;解决方案可以识别图像中的对象&#xff0c;分析和检测模式中的异常或找到关键短语。这些功能对于包括但不限于自动驾驶汽车…

蔬菜水果生鲜配送团购商城小程序的作用是什么

蔬菜水果是人们生活所需品&#xff0c;从业者众多&#xff0c;无论小摊贩还是超市商场都有不少人每天光临&#xff0c;当然这些只是自然流量&#xff0c;在实际经营中&#xff0c;蔬菜水果商家还是面临着一些难题。 对蔬菜水果商家而言&#xff0c;线下门店是重要的&#xff0…

掌握 Scikit-Learn: Python 中的机器学习库入门

机器学习 第二课 Sklearn 入门 概述机器学习与 Python 的完美结合Scikit-Learn 的核心组件与结构安装与配置验证安装 数据表示与预处理特征矩阵和目标向量数据处理 估计器模型的选择思考问题的本质研究数据的分布判断任务的复杂性分类问题回归问题 监督学习分类算法回归算法 无…

Spring Cloud Alibaba—Sentinel 控制台安装

1、Sentinel 控制台包含如下功能: 查看机器列表以及健康情况&#xff1a;收集 Sentinel 客户端发送的心跳包&#xff0c;用于判断机器是否在线。 监控 (单机和集群聚合)&#xff1a;通过 Sentinel 客户端暴露的监控 API&#xff0c;定期拉取并且聚合应用监控信息&#xff0c;最…

并发数计算方法

1、性能测试计算TPS 性能测试的TPS,大都是根据用户真实的业务数据(运营数据)来计算的 普通计算方式:TPS=总请求数/总时间 二八原则计算方法:TPS=总请求*0.8/总时间*0.2 (二八原则就是指80%的请求在20%的时间内完成) 总结:普通计算方式只能满足基本的要求,但是不能很好覆…

【Leetcode】 96. 不同的二叉搜索树

给你一个整数 n &#xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种&#xff1f;返回满足题意的二叉搜索树的种数。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;5 示例 2&#xff1a; 输入&#xff1a;n 1 输出&#xff1a…

甘特图:如何制定一个有效的项目计划?需要考虑这些方面

一个清晰、可行的计划能够为团队提供明确的方向&#xff0c;确保项目顺利执行&#xff0c;缺乏明确的计划可能导致项目偏离轨道。 甘特图是一种通过条状图形来表示项目和进度的工具&#xff0c;由于其具有视觉化的优点&#xff0c;使得管理者能够更容易地掌握项目进展情况。因…

快速傅里叶变换FFT在MATLAB中的实现

一、FFT的由来 首先&#xff0c;为什么要进行傅里叶变换&#xff1f;将时域的信号变换到频域的正弦信号&#xff0c;正弦比原信号更简单&#xff0c;且正弦函数很早就被充分地研究&#xff0c;处理正弦信号比处理原信号更简单。正弦信号的频率保持性&#xff1a;输入为正弦信号…

电力物联网关智能通讯管理机-安科瑞黄安南

众所周知&#xff0c;网关应用于各种行业的终端设备的数据采集与数据分析&#xff0c;然后去实现设备的监测、控制、计算&#xff0c;为系统与设备之间建立通讯联系&#xff0c;达到双向的数据通讯。 网关可以实时监测并及时发现异常数据&#xff0c;同时自身根据用户规则进行…

微信小程序引入阿里巴巴iconfont图标并使用

介绍 在小程序里&#xff0c;使用阿里巴巴的图标&#xff0c;如下所示: 使用方式 搜索自己需要的图标&#xff0c;然后将需要用到的图标加入购物车&#xff0c;如下图所示&#xff1a; 去右上角&#xff0c;点击购物车按钮&#xff1b;这里第一次使用&#xff0c;会有三个提…