当前位置: 首页 > 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;}
};

 

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

相关文章:

  • OpenAI图像生成gpt-image-1登场,开启创意新可能
  • GPT-4o最新图像生成完全指南:10大应用场景与提示词模板
  • 【Vue】TypeScript与Vue3集成
  • Java学习手册:JSON 数据格式基础知识
  • 1Panel+Halo快速部署:简化服务器管理与网站搭建流程探索
  • 并发设计模式实战系列(6):读写锁
  • 立马耀:通过阿里云 Serverless Spark 和 Milvus 构建高效向量检索系统,驱动个性化推荐业务
  • 设计仿真 | Adams回调函数功能解析
  • 上岸率85%+,25西电先进材料与纳米科技学院(考研录取情况)
  • 通过阿里云Milvus与通义千问VL大模型,快速实现多模态搜索
  • ARINC818协议一些说明综述
  • QMT学习课程Day1
  • 针对密码学的 EM 侧信道攻击
  • OpenCV 图形API(62)特征检测-----在图像中查找最显著的角点函数goodFeaturesToTrack()
  • day36图像处理OpenCV
  • mfc学习(一)
  • 处理任务“无需等待”:集成RabbitMQ实现异步通信与系统解耦
  • Python 一等函数(函数内省)
  • Redis安装及入门应用
  • Docker从0-1搭建个人云盘(支持Android iOS PC)
  • 中国强镇密码丨洪泽湖畔的蒋坝,如何打破古镇刻板印象
  • 水利部将联合最高检开展黄河流域水生态保护专项行动
  • 深观察丨从“不建议将导师挂名为第一作者”说开去
  • 浙商银行一季度净赚超59亿微增0.61%,非息净收入降逾22%
  • 法院为“外卖骑手”人身权益撑腰:依法认定实际投保人地位
  • 扎克伯格怕“错过风口”?Meta AI数字伴侣被允许与未成年人讨论不当话题