当前位置:首页 > 力扣 > 力扣第1991题:寻找数组的中心索引 如何找到左右和相等的中心索引

力扣第1991题:寻找数组的中心索引 如何找到左右和相等的中心索引

7个月前 (05-20)

力扣第1991题:寻找数组的中心索引 如何找到左右和相等的中心索引 数组 算法 C++ 力扣 前缀和 枚举 迭代 第1张

题目解读

给定一个整数数组,我们需要找到一个中心索引,使得该索引左侧所有元素的和等于右侧所有元素的和。如果不存在这样的索引,则返回-1。中心索引的定义不包含在左右两侧的和计算中。这个问题考察对数组遍历和累加的基本操作,是理解数组平衡点的经典问题。


解题思路与过程

用暴力解法来寻找中心索引。外层循环遍历数组中的每个位置作为候选的中心索引i。对于每个候选位置i,内层循环分别计算i左侧所有元素的和(leftsum)和右侧所有元素的和(rightsum)。如果两者相等,则立即返回当前索引i。如果遍历完所有位置都没有找到满足条件的索引,则返回-1。


代码实现与注释

class Solution {
public:
    int findMiddleIndex(vector<int>& nums) {
        // 遍历数组中的每个位置作为候选中心索引
        for(int i=0;i<nums.size();i++)
        {
            int leftsum=0;  // 存储左侧元素和
            int rightsum=0; // 存储右侧元素和
            
            // 计算当前索引i左右两侧的和
            for(int j=0;j<nums.size();j++)
            {
                if(j<i)  // j在i左侧的情况
                {
                    leftsum+=nums[j];
                }
                if(j>i)  // j在i右侧的情况
                {
                    rightsum+=nums[j];
                }
            }
            
            // 检查是否找到中心索引
            if(leftsum==rightsum)
            {
                return i;  // 返回中心索引
            }
        }
        return -1;  // 未找到中心索引
    }
};


原创内容 转载请注明出处

分享给朋友:

相关文章

力扣1137题:动态规划解泰波那契数 高效求解第N项的秘密

力扣1137题:动态规划解泰波那契数 高效求解第N项的秘密

一:重新解读题目泰波那契数列是一个充满数学趣味的递推序列:从第3项开始,每个数均为前三个数的和(即Tₙ₊₃ = Tₙ + Tₙ₊₁ + Tₙ₊₂)。当给定整数n时,需要高效计算出第n项的值。面对此类递...

征服力扣704题:三步掌握经典二分查找算法

征服力扣704题:三步掌握经典二分查找算法

题目重解我们面对的是算法领域最经典的二分查找问题:在一个已排序的整数数组中,快速定位目标值的位置。就像在一本按字母顺序排列的字典中查找单词,我们不需要逐页翻阅,而是通过不断折半的方式快速缩小搜索范围,...

力扣933题:队列的妙用:如何高效统计最近请求

力扣933题:队列的妙用:如何高效统计最近请求

题目重解:我们需要设计一个能统计最近3000毫秒内请求次数的系统。每当新的请求到来时,它会带有时间戳t,我们需要返回过去3000毫秒内(包括当前)发生的请求总数。这就像是在时间轴上维护一个滑动窗口,只...

IOI 1994 洛谷1216:如何用动态规划高效解决数字三角形问题?附完整代码解析

IOI 1994 洛谷1216:如何用动态规划高效解决数字三角形问题?附完整代码解析

题目重解给定一个由数字组成的三角形结构,从顶部出发,每次可以移动到下方相邻的数字,最终到达底部。我们的目标是找到一条路径,使得路径上经过的数字总和最大。这个问题在实际中有许多应用场景,如最优路径规划、...

【动态规划入门】力扣509题:斐波那契数列的经典解法与优化思路

【动态规划入门】力扣509题:斐波那契数列的经典解法与优化思路

题目解读‌斐波那契数列是一个经典的数学问题,在计算机科学中常被用作算法教学的入门案例。这个神奇的数列从0和1开始,后续每个数字都是前两个数字之和。题目要求我们计算第n个斐波那契数,看似简单的问题背后却...

【力扣3115题解】数组中质数最大差值的求解(C++代码详解)

【力扣3115题解】数组中质数最大差值的求解(C++代码详解)

一、题目解读力扣3115题要求在一个整数数组中,找出两个质数之间的最大差值。若数组不存在质数,则返回0。题目核心在于高效筛选质数,并计算其索引差值的最大值,需兼顾时间与空间复杂度。二、解题思路参考代码...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。