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;
    } 
};
相关推荐
black_blank13 分钟前
st表 && csp37 第四题 集体锻炼
java·数据结构·算法
我爱Jack15 分钟前
Java List 使用详解:从入门到精通
java·开发语言·数据结构
秋说27 分钟前
【PTA数据结构 | C语言版】在顺序表 list 的第 i 个位置上插入元素 x
c语言·数据结构·list
大数据魔法师1 小时前
基于Pandas和FineBI的昆明职位数据分析与可视化实现(五) - 基于随机森林算法预测职位分类
算法·pandas
楼田莉子1 小时前
数据学习之队列
c语言·开发语言·数据结构·学习·算法
秋说1 小时前
【PTA数据结构 | C语言版】返回单链表 list 中第 i 个元素值
c语言·数据结构·list
雾里看山2 小时前
数据结构之队列
数据结构
让我们一起加油好吗2 小时前
【基础算法】贪心 (四) :区间问题
c++·算法·贪心算法·洛谷
双叶8362 小时前
(C++)任务管理系统(正式版)(迭代器)(list列表基础教程)(STL基础知识)
c语言·开发语言·数据结构·c++·list
s153352 小时前
数据结构-顺序表-拿硬币
数据结构