最近在力扣刷题,人差点没了!!!
【例题】给你一个整数数组 nums,请编写一个能够返回数组 “中心下标” 的方法。
数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。
如果数组不存在中心下标,返回 -1 。如果数组有多个中心下标,应该返回最靠近左边的那一个。
这里我用的是C语言写的
int pivotIndex(int* nums, int numsSize){
int left=0,lig=0,sum=0;
int i=0;
float fen;
for(i=0;i<numsSize;i++)//计算数组总和
{
sum=sum+nums[i];
}
for(i=0;i<numsSize;i++)
{
if(i==0)//中心点下标为零时
{
left=0;
lig=sum-nums[i];
if(left==lig)return i;
}
else if(i==numsSize-1)//中心点下标为零时
{
left=sum-nums[numsSize-1];
lig=0;
if(left==lig)return numsSize-1;
}
else
{
left+=nums[i-1];
lig=sum-left-nums[i];
if(left==lig)return i;
}
}
return -1;
}
链接:https://leetcode-cn.com/leetbook/read/array-and-string/yf47s/
来源:力扣(LeetCode)
- 复制链接
- 举报