寻找数组中心下标

思路
记录左右的和
int pivotIndex(vector<int>& nums) {
int sz = nums.size();
if (0 == sz) return -1;
std::vector<int> left;
std::vector<int> right;
left.resize(sz, 0);
right.resize(sz, 0);
for (int i = 1; i < sz; ++i) {
left[i] = left[i - 1] + nums[i-1];
}
for (int i = sz - 2; i >= 0; --i) {
right[i] = right[i + 1] + nums[i + 1];
}
int index = -1;
for (int i = 0; i < sz; i++) {
if (right[i] == left[i]) {
return i;
}
}
return index;
}

浙公网安备 33010602011771号