LeetCode每日一题之 寻找数组中心下标

题目介绍:

题目链接:. - 力扣(LeetCode)

算法原理:

这道题仍然可以使用前缀和的思想来求解,不理解基础前缀和模板的可以看我前面的博客,上图中0-2号位元素的和可以很好地用前缀和数组求出,而后面4-5号位元素则需要利用前缀和的变种----后缀和,利用同样的原理构建出后缀和数组,也可以很好求出,4-5号位元素的和。

这里的前缀和数组要进行一些修改,从题干中可以注意到,它求和时是不需要加上中心下标对应的元素的,所以我们创建前缀和f数组,后缀和g数组:

f[i]表示nums数组[0~(i-1)]区间所有元素的和。f[i]=f[i-1]+nums[i-1] 

g[i]表示nums数组[(i+1)~(n-1)]区间所有元素的和。g[i]=g[i+1]+nums[i+1]

使用前缀和,后缀和数组:

有了前缀和数组 和 后缀和数组后这道题就容易多了,我们只需从左往右遍历一遍数组,当f[i]==g[i]时,我们就返回i,循环完后,没找到就返回-1.

代码实现:

C++:

class Solution {
public:
    int pivotIndex(vector<int>& nums) {
        int n = nums.size();
        //构建前缀和数组和后缀和数组
        vector<int> f(n),g(n);
        int i = 1;
        for(i=1;i<n;i++)
        {
            f[i]=f[i-1]+nums[i-1];
        }
        for(i=n-2;i>=0;i--)
        {
            g[i]=g[i+1]+nums[i+1];
        }
        //使用前缀和数组和后缀和数组
        for(i=0;i<n;i++)
        {
            if(f[i]==g[i])
            {
                return i;
            }
        }
        return -1;
    }
};

 

相关推荐

  1. Leetcode724.寻找数组中心下标(通俗易懂版)

    2024-03-09 23:18:05       56 阅读
  2. LeetCode每日.08(162.寻找峰值)

    2024-03-09 23:18:05       50 阅读
  3. LeetCode 每日 ---- 【1146.快照数组

    2024-03-09 23:18:05       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-09 23:18:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-09 23:18:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-09 23:18:05       87 阅读
  4. Python语言-面向对象

    2024-03-09 23:18:05       96 阅读

热门阅读

  1. 深入了解C#中的垃圾回收(Garbage Collection)

    2024-03-09 23:18:05       36 阅读
  2. #Hack.Summit()2024区块链开发者盛宴即将上演!

    2024-03-09 23:18:05       37 阅读
  3. webpack5基础--05_处理图片资源

    2024-03-09 23:18:05       40 阅读
  4. 前端面试练习24.3.5

    2024-03-09 23:18:05       54 阅读
  5. MariaDB11修改数据存储位置

    2024-03-09 23:18:05       44 阅读
  6. 企业强化加密安全防护的关键措施与实施路径

    2024-03-09 23:18:05       45 阅读
  7. 多级透明分流系统(服务端缓存)

    2024-03-09 23:18:05       45 阅读
  8. MySQL 添加主键可以节省磁盘空间吗?

    2024-03-09 23:18:05       47 阅读
  9. ADB(Android Debug Bridge)详细下载安装及使用教程

    2024-03-09 23:18:05       180 阅读