前言
LeetCode 算法练习记录一、题目【寻找数组中心索引】
给你一个整数数组 nums,请编写一个能够返回数组 “中心下标” 的方法。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果数组不存在中心下标,返回 -1 。如果数组有多个中心下标,应该返回最靠近左边的那一个。 注意:中心下标可能出现在数组的两端。二、题解
0.Key0
int pivotIndex(int* nums, int numsSize){
int rsum = 0; //数组中心左侧数值之和
int lsum = 0; //数组中心右侧数值之和
for(int i = 0; i < numsSize; ++i)
{
lsum += nums[i]; //先求数组总和
}
for(int j = 0; j < numsSize; ++j)
{
lsum -= nums[j]; //数组中心的标记位左移,被脱离的数组加入到rsum中
if(lsum == rsum)
return j;
rsum += nums[j];
}
return -1;
}
执行用时:36 ms,在所有 C 提交中击败了 26.04% 的用户
内存消耗:6.3 MB, 在所有 C 提交中击败了 89.32% 的用户