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

前缀和 后缀和 --- 寻找数组的中心下标

题目链接

寻找数组的中心下标
给你一个整数数组 nums ,请计算数组的 中心下标 。

数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。

如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。

如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。在这里插入图片描述

问题分析

从中⼼下标的定义可知,除中⼼下标的元素外,该元素左边的「前缀和」等于该元素右边的「后缀和」。
▪ 因此,我们可以先预处理出来两个数组,⼀个表⽰前缀和,另⼀个表⽰后缀和。
▪ 然后,我们可以⽤⼀个 for 循环枚举可能的中⼼下标,判断每⼀个位置的「前缀和」以及「后缀和」,如果⼆者相等,就返回当前下标。

代码解决

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;}

执行用时

在这里插入图片描述

相关文章:

  • Idea 如何配合 grep console过滤并分析文件
  • g4f api报错:ImportError: cannot import name ‘model_validator‘ from ‘pydantic‘
  • SELinux 从理论到实践:深入解析与实战指南
  • 存储过程补充——定义条件、处理程序及游标使用
  • shell编程基础(第x篇:子进程知识点汇总)
  • MySQL日志详解
  • Spring事务开发经验 回滚和不回滚?
  • AI应用实战:Excel表的操作工具
  • 51la 统计登录日志-悟空统计成为高效的选择
  • (004)Excel 监视窗口
  • MIT6.S081-lab7
  • 清晰易懂的跨域请求知识——拿捏
  • 《解锁CSS Flex布局:重塑现代网页布局的底层逻辑》
  • 实习技能记录【4】-----消息分发中的观察者模型
  • Canvas基础篇:绘制矩形
  • Git 实操:如何使用交互式 Rebase 移除指定提交(真实案例分享)
  • gradle 下载的tencent的镜像
  • Spark,集群搭建-Standalone
  • 企业战略管理(设计与工程师类)-2-战略规划及管理过程-2-外部环境分析-PESTEL模型实践
  • 从“丈量勘界”到“云端智管”:解码自然资源统一调查监测的智慧密码
  • 招商蛇口:一季度营收约204亿元,净利润约4.45亿元
  • 工行一季度净赚841亿元降3.99%,营收降3.22%
  • 文天祥与“不直人间一唾轻”的元将唆都
  • 历史新高!上海机场一季度营收增至31.72亿元,净利润增34%
  • 伊朗港口爆炸已致46人死亡
  • 借助AI应用,自闭症人群开始有可能真正“读懂他人”