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

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

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


原创内容 转载请注明出处

分享给朋友:

相关文章

力扣654:递归分治的艺术 如何用最大元素构建二叉树

力扣654:递归分治的艺术 如何用最大元素构建二叉树

题目重解我们面对一个看似简单却充满递归魅力的题目:给定一个不含重复元素的整数数组,需要构建一棵特殊的二叉树。这个树的每个父节点都必须是当前子数组中的最大元素,而它的左右子树则分别由该最大值左侧和右侧的...

力扣145:递归之美 轻松掌握二叉树后序遍历

力扣145:递归之美 轻松掌握二叉树后序遍历

题目解读二叉树的后序遍历是一种基础且重要的树遍历方式,其遍历顺序为:先递归地后序遍历左子树,然后递归地后序遍历右子树,最后访问根节点。这种遍历方式特别适合需要先处理子节点再处理父节点的场景,如内存释放...

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

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

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

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

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

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

洛谷1656题解:基于Tarjan算法求解割边问题(附代码与详细步骤)

洛谷1656题解:基于Tarjan算法求解割边问题(附代码与详细步骤)

一、题目解读洛谷1656题要求在无向图中找出所有割边(即删除后导致图不连通的边)。题目核心在于判断图的连通性,并识别哪些边是“桥”。需理解图论中的连通分量概念,以及如何通过算法高效定位割边。二、解题思...

洛谷P2190题解:铁路售票系统车厢计算(差分数组+前缀和优化)

洛谷P2190题解:铁路售票系统车厢计算(差分数组+前缀和优化)

一、题目解读洛谷P2190题要求解决铁路售票系统中的车厢数量计算问题。题目给定n个车站和m条订票申请,每条申请包含区间[x,y)及乘客数z。需要计算在不超载的情况下(每节车厢最多36人),满足所有乘客...

发表评论

访客

看不清,换一张

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