最开始的实现:
int pivotIndex(int* nums, int numsSize) {
int mIndex = 0;
for (int i = 0; i < numsSize; i ++)
{
int left = 0, right = 0;
for (int j = 0; j < mIndex; j ++)
{
left += nums[j];
}
for (int k = numsSize - 1; k > mIndex; k --)
{
right += nums[k];
}
if (left == right) return mIndex;
mIndex ++;
}
return -1;
}
google 后看了别人写的之后:
int pivotIndex(int* nums, int numsSize) {
short sum = 0, total = 0, i = 0;
for (i = 0; i < numsSize; i ++)
{
sum += nums[i];
}
total = sum;
for (i = 0; i < numsSize; i ++)
{
sum -= nums[i];
if (total - nums[i] == sum + sum) return i;
}
return -1;
}
参考:
参考别人的实现在这里