代码语言:javascript复制
题目:
给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。
我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。
如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。
上面这么一道题,是我在刷题的时候遇到的,其实这道题也不难,就是list的元素和,判断最后是否满足 左边的等于后边的和,返回索引。
我们需要找一个标,依次移动,然后看下标的元素左右的元素之和是否满足。如果满足,我们就返回。当然了,我们还去掉一些特殊情况。
实现起来没有那么难,我们看看python是怎么实现的
代码语言:javascript复制class Solution:
def pivotIndex(self, nums) -> int:
if len(nums)==0:
return -1
if len(nums)==1:
return 0
for i in range(0,len(nums)):
if sum(nums[0:i])==sum(nums[i 1:len(nums)]):
return i
return -1
这样就实现了,当然了,这里写不好,可能会出现运行时间过长的,我在这里面的写法,利用了sum函数。这样运行的效率还是有一定提高的。最近在面试,坚持每天刷一些算法题,去提高自己。题目的本身不是特别难的,我中间经过了几次改版,最后才形成了这个,之前是部分的数组验证无法满足需求,后来感觉不够精简。