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

leetcode724 寻找数组的中心下标

题目

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

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

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

如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -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 ,二者相等。

解法

前缀和的经典题目,前缀和的思路是由于解题过程中要频繁用到数组的和,那么我们不妨一开始就直接构建出数组保存数组的前缀和。

具体思路如下:

至于为什么要从s[0]开始构造,敲黑板,是因为前缀和一般利用起来都是大的前缀和减去小的前缀和的形式,如果不构造s[0],则无法以同一种形式处理所有带a[0]的部分,两个前缀和相减,都会直接消去它。

另外需要注意的是前i-1项和的索引是s[i]。

我的解法如下:(找到我学不了算法的原因了,我学到了前缀和的形式,别人学到了前缀和的灵魂)

class Solution:def pivotIndex(self, nums: List[int]) -> int:s = [0]*(len(nums)+1)for i, x in enumerate(nums):s[i+1] = s[i] + xfor i in range(1,len(nums)+1):if i==1:if s[len(nums)]-s[1]==0:return i-1elif i==len(nums):if s[len(nums)]-nums[len(nums)-1]==0:return i-1else:if s[i-1]==s[len(nums)]-s[i]:return i-1return -1

灵神解法

他其实每次都在使用的是总和,然后灵神巧妙地借助了leftS,完成了这个巧夺天工的解题思路。

http://www.dtcms.com/a/481792.html

相关文章:

  • AI用户洞察新纪元:atypica.AI如何重塑商业决策逻辑
  • 彻底解决 Zip4j 解压中文文件名乱码问题(含混合编码与 Mac 特殊情况)
  • 河北农业网站建设公司凡科互动官网登录
  • 企业网站建设的成本构成吉林市网站建设招标
  • git push 报错 push rejected (一文读懂并解决)
  • 从缓存到分库分表:MySQL 高并发海量数据解决方案全解析
  • 苍穹外卖-缓存套餐 Spring Cache day07
  • 垂直电商网站建设方案wordpress主题开发时间
  • 报告工具更新!Word附注一键期末转期初
  • 优化A7M4相机直播图像传输:避免质量损失,实现端到端高保真
  • 平替MongoDB金仓多模数据库在电子证照国产化中的实践与优势
  • AWS WAF 深度体验:全新控制台,开启云原生WAF与CloudFront无缝联防新纪元
  • 【统计字母出现最多次数不分大小写按字典顺序输出】2022-11-9
  • 怎么查自己的网站备案编号本人已履行网站备案信息
  • 电子商务网站建设结论谷歌查询关键词的工具叫什么
  • Ubuntu 安装 SSH,并开启 root 远程登录
  • python学习之路(一)
  • 电源唐大师
  • QT-常用控件(四)-输入类
  • newstar2025 web week1week2题解(少一道)
  • 【C++】vector常用接口的使用
  • ES6 面试题及详细答案 80题 (62-80)-- 类与继承
  • 宁波高质量品牌网站设计厂家网络完全公司排名
  • 网站源码在线提取东莞市网站公司
  • C++中substr()函数详解
  • 乐迪信息:煤矿堆煤隐患难排查?AI摄像机实时监控与预警
  • Deep Dive into LLMs like ChatGPT 学习笔记
  • AI-大模型接入
  • 4.Windows Server 磁盘管理(1)
  • 后端三层架构