Leetcode 724: Find Pivot Index (前缀和数组简单题)

  1. Find Pivot Index
    Easy

Given an array of integers nums, calculate the pivot index of this array.

The pivot index is the index where the sum of all the numbers strictly to the left of the index is equal to the sum of all the numbers strictly to the index's right.

If the index is on the left edge of the array, then the left sum is 0 because there are no elements to the left. This also applies to the right edge of the array.

Return the leftmost pivot index. If no such index exists, return -1.

Example 1:

Input: nums = [1,7,3,6,5,6]

Output: 3

Explanation:

The pivot index is 3.

Left sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11

Right sum = nums[4] + nums[5] = 5 + 6 = 11

Example 2:

Input: nums = [1,2,3]

Output: -1

Explanation:

There is no index that satisfies the conditions in the problem statement.

Example 3:

Input: nums = [2,1,-1]

Output: 0

Explanation:

The pivot index is 0.

Left sum = 0 (no elements to the left of index 0)

Right sum = nums[1] + nums[2] = 1 + -1 = 0

Constraints:

1 <= nums.length <= 104

-1000 <= nums[i] <= 1000

Note: This question is the same as 1991: https://leetcode.com/problems/find-the-middle-index-in-array/

解法1:前缀和数组

cpp 复制代码
class Solution {
public:
    int pivotIndex(vector<int>& nums) {
        int n = nums.size();
        vector<int> presums(n + 1, 0);
        for (int i = 1; i <= n; i++) presums[i] = presums[i - 1] + nums[i - 1];
        
        for (int i = 1; i <= n; i++) {
            if (presums[i - 1] == presums[n] - presums[i]) return i - 1;
        }
        return -1;
    } 
};
相关推荐
m0_7066532317 分钟前
模板编译期排序算法
开发语言·c++·算法
历程里程碑18 分钟前
Linxu14 进程一
linux·c语言·开发语言·数据结构·c++·笔记·算法
木井巳22 分钟前
【递归算法】验证二叉搜索树
java·算法·leetcode·深度优先·剪枝
m0_5613596726 分钟前
嵌入式C++加密库
开发语言·c++·算法
近津薪荼27 分钟前
优选算法——双指针专题7(单调性)
c++·学习·算法
j4455661134 分钟前
C++中的职责链模式实战
开发语言·c++·算法
m0_6860416139 分钟前
实时数据流处理
开发语言·c++·算法
波波侠81 小时前
代码随想录算法训练营打卡第31天|56. 合并区间、738.单调递增的数字
算法
Snow_day.1 小时前
有关线段树应用(1)
数据结构·算法·贪心算法·动态规划·图论
m0_561359671 小时前
C++模块接口设计
开发语言·c++·算法