寻找数组中心下标

思路

记录左右的和

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;
    }
posted @ 2021-07-12 11:42  cyssmile  阅读(58)  评论(0)    收藏  举报