Loading... > https://leetcode.cn/problems/find-pivot-index/description/?envType=daily-question&envId=2024-05-02 先计算出所有元素的总和,然后就可以根据左边元素的和计算出右边元素的和,比较即可。 注意特判以下总和是否为第一个元素,如果是的话则返回 0 。 ```c++ class Solution { public: int pivotIndex(std::vector<int>& nums) { const int n = nums.size(); int sum = 0; for (auto &num : nums) sum += num; if (sum == nums[0]) return 0; int leftSum = 0; for (int i = 1; i < n; i++) { leftSum += nums[i - 1]; if (leftSum == sum - leftSum - nums[i]) return i; } return -1; } }; ``` - 时间复杂度:$O(n)$ ,其中 $n$ 为 `nums` 的长度。 - 空间复杂度:$O(1)$ 。 最后修改:2024 年 07 月 08 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏