Problem: 724. 寻找数组的中心下标
文章目录
- 题目描述
- 思路及解法
- 复杂度
- Code
题目描述
思路及解法
分别求取nums数组的前、后缀和(不包括当前元素),并比较当某个位置的前后缀和相等时,返回该位置;
复杂度
时间复杂度:
O ( n ) O(n) O(n)
空间复杂度:
O ( n ) O(n) O(n)
Code
class Solution {
public:/*** Prefix, suffix sum* @param nums Given array* @return int*/int pivotIndex(vector<int>& nums) {int n = nums.size();int curSum = 0;vector<int> prefixSum(n);for (int i = 0; i < n; ++i) {prefixSum[i] = curSum;curSum += nums[i];}curSum = 0;vector<int> suffixSum(n);for (int i = n - 1; i >= 0; --i) {suffixSum[i] = curSum;curSum += nums[i];}for (int i = 0; i < n; ++i) {if (prefixSum[i] == suffixSum[i]) {return i;}}return -1;}
};