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

leetcode LCR 012.寻找数组的中心下标

一、题目描述

二、解题思路

整体思路:

由于题目要求的是两个连续区间的和,所以可以使用前缀和来解决这个问题。

具体思路:

(1)首先进行边界处理,如果数组为空,则直接返回-1;

(2)构造前缀和数组,注意这个数组是从下标0开始,dp[0]要单独处理一下;

(3)使用前缀和数组,计算ptr两侧的子数组的和,如果相等,则返回ptr。若dp数组遍历完毕也未找到中心下标,则返回-1。

三、代码实现

时间复杂度:T(n)=O(n)

空间复杂度:S(n)=O(n)

class Solution {
public:int pivotIndex(vector<int>& nums) {//边界处理if(nums.empty()) return -1;//构造前缀和数组vector<int> dp(nums.size(),0);dp[0]=nums[0];for(int i=1;i!=dp.size();i++) dp[i]=dp[i-1]+nums[i];//使用前缀和数组for(int ptr=0;ptr!=dp.size();ptr++){if(dp[ptr]-nums[ptr]==dp[dp.size()-1]-dp[ptr])return ptr;}return -1;}
};

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

相关文章:

  • 59 C++ 现代C++编程艺术8-智能指针
  • IO多路转接(select方案)
  • 测试用例如何评审?
  • `mysql_query()` 数据库查询函数
  • 如何监控ElasticSearch的集群状态?
  • THM trypwnme2
  • 【广告系列】流量归因模型
  • LeetCode热题100--102. 二叉树的层序遍历--中等
  • 云计算学习笔记——Linux用户和组的归属权限管理、附加权限、ACL策略管理篇
  • CentOS安装Jenkins全流程指南
  • 【大白话解析】 OpenZeppelin 的 ECDSA 库:以太坊签名验证安全工具箱(附源代码)
  • 零基础也能写博客:cpolar简化Docsify远程发布流程
  • 自学嵌入式第二十七天:Linux系统编程-进程
  • MQTT 协议模型:客户端、 broker 与主题详解(二)
  • Java 学习笔记(基础篇10)
  • Qwen2-Plus与DeepSeek-V3深度测评:从API成本到场景适配的全面解析
  • Coze用户账号设置修改用户头像-后端源码
  • 大模型的多机多卡训练
  • 09-数据存储与服务开发
  • 深度学习分类网络初篇
  • react+taro打包到不同小程序
  • Nginx与Apache:Web服务器性能大比拼
  • Docker:技巧汇总
  • 连锁零售排班难?自动排班系统来解决
  • Swiper属性全解析:快速掌握滑块视图核心配置!(2.3补充细节,详细文档在uniapp官网)
  • 从C语言到数据结构:保姆级顺序表解析
  • 数据库之两段锁协议相关理论及应用
  • 前端开发:详细介绍npm、pnpm和cnpm分别是什么,使用方法以及之间有哪些关系
  • Ansible 任务控制与事实管理指南:从事实收集到任务流程掌控
  • 面向过程与面向对象