当前位置: 首页 > news >正文

前缀和-724.寻找数组的中心下标-力扣(LeetCode)

一、题目解析

我们需要求出中心下标处两边的和是否相等。

二、算法解析

解法1:暴力枚举 O(n*2)(时间复杂度)

 固定i,计算[0,i-1]的和,计算[i+1,n-1]的和,然后比较是否相等。遍历i为n次,每次计算n-1个数据的值,所以时间复杂度为O(n*2).

解法2:前缀和

而本题被i划分为了两个区间[0,i-1]和[i+1,n-1],所以我们只需要计算出[0,i-1]的前缀和,[i+1,n-1]的后缀和,比较是否相等即可。

由于计算f[0]时会发生越界访问,所以需要提前计算出f[0]的值,由于[0,-1]内没有元素,所以f[0]=0。g[n-1]同理,g[n-1]=0。并且还需要注意计算f[i]是从左往右的,而g[i]则是从右往左。

可以先根据原理去自己实现代码,链接: 724. 寻找数组的中心下标 - 力扣(LeetCode)

 三、代码示例

class Solution {
public:int pivotIndex(vector<int>& nums) {int n = nums.size();vector<int> f(n),g(n);//初始化f[i]和g[i]f[0]=0;g[n-1]=0;for(int i = 1;i<nums.size();i++)//计算前缀和f[i]{f[i] = f[i-1]+nums[i-1];}for(int i = n-2;i>=0;i--)//计算后缀和g[i]{g[i] = g[i+1]+nums[i+1];}for(int i = 0;i<nums.size();i++)//遍历所有下标i,判断是否相等{if(f[i] == g[i]) return i;}return -1;}
};

 

看到最后,如果对您有所帮助还请留下一个免费的赞和收藏,我们下期再见!

http://www.xdnf.cn/news/111007.html

相关文章:

  • java—14 ZooKeeper
  • 【C++游戏引擎开发】第23篇:基础阴影映射(Shadow Mapping)
  • 2025/4/24
  • LeetCode 2799.统计完全子数组的数目:滑动窗口(哈希表)
  • 机器学习(9)——随机森林
  • 缓存与数据库数据一致性:旁路缓存、读写穿透和异步写入模式解析
  • “Daz to Unreal”将 G8 角色(包括表情)从 daz3d 导入到 UE5。在 UE5 中,我发现使用某个表情并与闭眼混合后,上眼睑出现了问题
  • 加密认证库openssl初始附带c/c++的使用源码
  • Nginx 中间件
  • 焊接机排错
  • 【C++指南】位运算知识详解
  • 直播预告 |【仓颉社区】第32期WORKSHOP
  • 蓝牙低功耗设备的漏洞与攻击——最新信息回顾
  • 图论算法体系:并查集、生成树、排序与路径搜索全解析
  • STM32F103系列单片机寄存器操作和标准库操作
  • CIFAR10图像分类学习笔记(三)---数据加载load_cifar10
  • 前端 Excel 工具组件实战:导入 → 可编辑表格 → 导出 + 样式同步 + 单元格合并
  • 《Llama.cpp:开启本地大模型部署新时代》
  • 动态规划问题 -- 斐波那契数列模型(使用最小花费爬楼梯)
  • 怎么实现RAG检索相似文档排序:similarities
  • 【hadoop】HBase shell 操作
  • 在 Ubuntu 环境为 Elasticsearch 引入 `icu_tokenizer
  • docker部署Jenkins工具
  • 宝塔里redis停止了自动启用脚本
  • Docker 部署 Redis:快速搭建高效缓存服务
  • Flask + ajax上传文件(二)--多文件上传
  • 从入门到精通【MySQL】视图与用户权限管理
  • 使用RabbitMQ实现判题功能
  • 切割PDF使用python,库PyPDF2
  • 大学生如何学好人工智能