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

求数组的中心索引

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

python代码:

class Solution(object):def pivotIndex(self, nums):""":type nums: List[int]:rtype: int"""sum_nums = sum(nums)prefix_nums = 0for index, num in enumerate(nums):if prefix_nums * 2 == sum_nums - num:return indexprefix_nums += numsreturn -1

go代码

func pivotIndex(nums []int) int {sumNums := 0for _, v := range nums{sumNums += v}prefixNum := 0for index, num := range nums{if prefixNum * 2 == sumNums - num{return index}prefixNum += num} return -1
}
http://www.lryc.cn/news/35575.html

相关文章:

  • Ubuntu 搭建NextCloud私有云盘【内网穿透远程访问】
  • 如何使用vue创建一个完整的前端项目
  • http组成及状态及参数传递
  • USART_GetITStatus与 USART_GetFlagStatus的区别
  • Java 系列之 Springboot
  • 乐山持点科技:抖客推广准入及准出管理规则
  • Steam流
  • Nuxt实战教程基础-Day01
  • 栈和队列详细讲解+算法动画
  • 【Unity3D小技巧】Unity3D中判断Animation以及Animator动画播放结束,以及动画播放结束之后执行函数
  • 【1】熟悉刷题平台操作
  • 计算机网络:RIP协议以及距离向量算法
  • [数据结构与算法(严蔚敏 C语言第二版)]第1章 绪论(课后习题+答案解析)
  • JS_countup.js 的简单使用,数字滚动效果
  • 【C++知识点】STL 容器总结
  • C++---背包模型---装箱问题(每日一道算法2023.3.9)
  • if-else if与switch的练习1:输入两个数,输出两个数的加减乘除的值
  • 【教程】你现在还不知道微软的New Bing?你out了,快点进来看
  • https流程
  • python魔法方法
  • 软件测试员如何进行产品测试?
  • 计算机网络基础知识点【1】
  • c++ 中标准库类型 string 详解
  • Html新增属性之拖拽(drag)
  • C/C++开发,无可避免的多线程(篇二).thread与其支持库
  • mysql数据库之表级锁
  • Python - Pandas - 数据分析(2)
  • 我的十年编程路 2019年篇
  • (蓝桥真题)剪格子(搜索+剪枝)
  • Kalman Filter in SLAM (3) ——Extended Kalman Filter (EKF, 扩展卡尔曼滤波)