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

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

6个月前 (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;  // 未找到中心索引
    }
};


原创内容 转载请注明出处

分享给朋友:

相关文章

力扣LCR182:字符串操作三连 从基础拼接到底层指针优化

力扣LCR182:字符串操作三连 从基础拼接到底层指针优化

题目重解需要将密码字符串从第target个字符开始进行重新排列,形成新的动态密码。例如输入"password"和target=3,结果应为"swordpas"。...

力扣501题最优解:不用额外空间找出BST中的众数?这个解法让你大开眼界

力扣501题最优解:不用额外空间找出BST中的众数?这个解法让你大开眼界

题目解读‌:在二叉搜索树的世界里,每个节点都默默记录着自己的数值。现在我们需要找出这些数值中出现频率最高的那些数字,也就是所谓的"众数"。有趣的是,二叉搜索树本身具有左小右大的特性...

牛客14496题解:括号最大深度问题(栈思想与代码优化)

牛客14496题解:括号最大深度问题(栈思想与代码优化)

一、题目解读牛客14496题要求计算给定括号字符串中的最大深度。例如,对于字符串 "(()())",最大深度为2。题目考察对括号嵌套结构的理解,以及如何通过编程找到最深嵌套层次。二...

力扣3112题解法:带时间限制的最短路径问题解析(C++代码)

力扣3112题解法:带时间限制的最短路径问题解析(C++代码)

一、题目解读力扣3112题要求解决带时间限制的最短路径问题:给定一个有向图,节点具有消失时间,需计算从起点到各节点的最短路径,且路径总时间不能超过节点的消失时间。题目难点在于需在传统最短路径算法(如D...

【洛谷1184题解析】用C++高效解决地点匹配问题(附代码与解题思路)

【洛谷1184题解析】用C++高效解决地点匹配问题(附代码与解题思路)

一、题目解读洛谷1184题要求处理一组地点列表与行程记录,统计其中匹配的天数。题目难点在于高效处理带有空格的字符串输入,以及快速判断每日行程是否在高手可去地点集合中。需要兼顾输入格式解析与算法效率。二...

牛客NC67题解:汉诺塔递归算法与解题步骤

牛客NC67题解:汉诺塔递归算法与解题步骤

一、题目解读牛客NC67题要求解决汉诺塔问题,这是一个经典的递归算法题目。题目给定整数n,代表汉诺塔中的盘子数量,需要输出将n个盘子从起始柱移动到目标柱的所有步骤。汉诺塔问题规则为:每次只能移动一个盘...

发表评论

访客

看不清,换一张

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