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

news2024/11/24 18:49:56

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【手撕算法系列专栏】【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.coloradmin.cn/o/1097911.html

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

相关文章

ThinkPHP5小语种学习平台

有需要请加文章底部Q哦 可远程调试 ThinkPHP5小语种学习平台 一 介绍 此小语种学习平台基于ThinkPHP5框架开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。平台角色分为学生&#xff0c;教师和管理员三种。学生注册登录后可观看学习视频&#xff0c;收藏视频&#xf…

mysql查看连接池的命令

查看实时连接的个数 &#xff08;瞬时值&#xff09; SHOW STATUS LIKE Threads_connected; 查看具体的链接信息 show full processlist;

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

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

九.镜头知识之CRA(ChiefRay Angle) 主光线角度

九.镜头知识之CRA(ChiefRay Angle) 主光线角度 文章目录 九.镜头知识之**CRA(ChiefRay Angle) 主光线角度**1.9.1 Sensor接收光能1.9.1.1 CRA 定义1.9.1.2 Lens CRA1.9.1.3 Sensor CRA1.9.2 Lens和Sensor搭配的三个重要参数1.9.2.1 ov7251 cra定义:主光线角度为主光线与平行光…

ubuntu18.04 LTS卸载qtcreator-10.0.2

之前通过命令&#xff0c;通过.run文件&#xff0c;安装了Qt Creator 默认安装路径是/opt/ 卸载 在安装路径下&#xff0c;可以看到QtCreatorUninstaller文件 命令行运行该执行文件&#xff0c;会弹出卸载窗口&#xff0c;记得勾选下面的“仅卸载”

如何在不牺牲质量的情况下降低采购成本?

采购成本对许多企业来说都是一笔不小的开支&#xff0c;要在不降低质量的前提下节省开支总是很难兼顾。 现在&#xff0c;端到端的**采购管理软件**8Manage SRM提供了一整套工具和功能&#xff0c;旨在支持采购最佳实践并优化流程。通过以下方式&#xff0c;该软件可以帮助你降…

【SWAT水文模型】SWAT水文模型建立及应用第六期:参数敏感性分析

SWAT CUP的下载及安装参见另一博客-【SWAT水文模型】SWAT-CUP安装及使用。本博客主要介绍SWAT模型参数敏感性分析。 SWAT模型参数敏感性分析&#xff08;SWAT CUP&#xff09; 原理率定参数 操作步骤Step1&#xff1a;Step2&#xff1a;Step3&#xff1a; 参考 在 ArcSWAT201…

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…

REF543KB127AAAA 支持整个企业的有效扩展规划和分析

REF543KB127AAAA 支持整个企业的有效扩展规划和分析 OneStream首席执行官Tom Shea表示:“放眼市场&#xff0c;能够在不依赖数据科学团队或第三方工具的情况下处理大量数据以进行预测决策的FP&A供应商并不多。“我们新的内置人工智能和人工智能功能将使财务和运营团队能够…

【LeetCode刷题(数据结构与算法)】:对链表进行插入排序

给定单个链表的头 head &#xff0c;使用 插入排序 对链表进行排序&#xff0c;并返回 排序后链表的头 插入排序 算法的步骤: 插入排序是迭代的&#xff0c;每次只移动一个元素&#xff0c;直到所有元素可以形成一个有序的输出列表 每次迭代中&#xff0c;插入排序只从输入数据…

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

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

搭建可远程访问的服务:利用Apache和内网穿透实现公网访问

文章目录 前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpolar web ui管理界面3.2 创建公网地址 4. 固定公网地址 前言 Apache作为全球使用较高的Web服务器…

innovus:stripe下不放std cell的命令

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 一些drc问题在place阶段就可以检查出来&#xff0c;比如preroute drc&#xff0c;这种就是standard cell的pin shape和power plan之间的drc问题&#xff0c;可能是和pg via也可能是和stripe。 为了避…

锁定云栖大会!共同见证阿里云大数据+AI产品年度重磅发布及创新

2023 云栖大会将于 10.31-11.2 在杭州云栖小镇举办&#xff0c;深度拥抱大数据AI 核心技术&#xff0c;见证阿里云大数据AI产品年度重磅发布及创新。开放融合的科技展示平台&#xff0c;汇聚生态、启迪想象。在这里&#xff0c;共同探索智能时代的无线机遇和未来。 阿里云大数…

Vue3集成高德地图:快速上手,实现你的业务需求

Vue3集成高德地图 前言一、准备工作1.开发文档2.添加应用 二、使用步骤命令安装2.地图容器创建3.组件引入4.js api 安全密钥5.初始化地图6. 图层6.1 添加 / 设置 / 获取 / 移除图层6.1.1 添加图层6.1.2 设置图层6.1.3 获取图层6.1.4 移除图层 7. 点标记8. 信息窗体8.1 默认信息…

Qt 为Android app添加系统签名

Qt 为Android app添加系统签名 flyfish 一 环境 lsb_release -aNo LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 23.04 Release: 23.04 Codename: lunarQt Creator 10.0.2 构建套件 Qt 6.5.1 Clang arm64-v8a 二 运行Qt 如果没有Qt图标 在终端…

【Springboot】Filter 过滤器的使用

一、基本介绍 过滤器 Filter 作为 Java 三大器之一&#xff0c;在 Java Web 的使用中有很高的地位。所谓过滤器&#xff0c;就是实现了 javax.servlet.Filter 接口的服务器端程序&#xff0c;就是对事物进行过滤的。在 Web 中的过滤器&#xff0c;当然就是对请求进行过滤&#…

2023常见自动化测试工具集合

1、Appium -------> AppUI自动化测试 官网&#xff1a;http://appium.io Appium 是一个移动端自动化测试开源工具&#xff0c;支持iOS 和Android 平台&#xff0c;支持Python、Java 等语言&#xff0c;即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台&#x…

关于图像分割SDK的一些基础认识

随着科技的不断发展&#xff0c;图像分割SDK已经成为了一个备受关注的话题。而在众多图像分割SDK中&#xff0c;美摄图像分割SDK以其独特的功能和优势脱颖而出。本文将从美摄图像分割SDK的企业价值和互联网娱乐方面&#xff0c;介绍其宣传文章的具体写作规范。 在企业价值方面&…

如何用IP地址解决广告精准投放问题

IP地址可以在广告精准投放中发挥关键作用&#xff0c;因为它提供了有关用户的地理位置信息。通过结合IP地址和其他数据&#xff0c;广告公司和平台可以更精准地定位广告受众&#xff0c;从而提高广告投放的效果。以下是一些方式&#xff0c;说明了如何使用IP地址来解决广告精准…