边肖将与您分享leetcode如何找到数组的中心索引。相信大部分人还不太了解,所以分享这篇文章给大家参考。希望你看完这篇文章会有很多收获。我们一起来看看吧!
一、议题内容
给定一个整数类型的数组nums,请编写一个能够返回数组 “中心索引” 的方法。
我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。
如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。
示例 1:
输入:
nums=[1,7,3,6,5,6]
产出:3
解释:
索引3 (nums[3]=6)的左数之和(1 7 3=11)等于右数之和(5 6=11)。
同时,3也是第一个符合要求的中心指标。
示例 2:
输入:
nums=[1,2,3]
输出:-1
解释:
数组中没有满足此条件的中心索引。
说明:
nums的长度范围是[0,10000]。
任何nums[i]都将是[-1000,1000]范围内的整数。
二、解题思路
先计算nums所有元素的和,然后从左到右计算左边的和,如果:
左边和 * 2+当前元素 = 所有元素和
则返回当前元素索引,否则返回-1。
三、代码
分类解决方案:
defpivotIndex(self,nums:list)-int:
整和=和(nums)
left_sum=0
foriirange(len(nums)):
ifleft _ sum * 2 nums[I]==整数_sum:
返回
else:
left_sum=nums[i]
返回-1
if__name__=='__main__':
s=解决方案()
nums1=[1,7,3,6,5,6]
ans1=s.pivotIndex(nums1)
打印(ans1)
nums2=[1,2,3]
ans2=s.pivotIndex(nums2)
打印(ans2)
nums3=[-1,-1,-1,-1,-1,-1,-1]
ans3=s.pivotIndex(nums3)
打印(ans3)
nums4=[-1,-1,-1,-1,-1,0]
ans4=s.pivotIndex(nums4)
Print(ans4)这就是文章“leetcode如何找到数组的中心索引”的全部内容。感谢您的阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。想了解更多知识,请关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/146807.html