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

每日两道leetcode(补充一)

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

题目

给你一个整数数组 nums ,请计算数组的 中心下标 

数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。

如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。

如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。

示例 1:

输入:nums = [1, 7, 3, 6, 5, 6]
输出:3
解释:
中心下标是 3 。
左侧数之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,
右侧数之和 sum = nums[4] + nums[5] = 5 + 6 = 11 ,二者相等。

示例 2:

输入:nums = [1, 2, 3]
输出:-1
解释:
数组中不存在满足此条件的中心下标。

示例 3:

输入:nums = [2, 1, -1]
输出:0
解释:
中心下标是 0 。
左侧数之和 sum = 0 ,(下标 0 左侧不存在元素),
右侧数之和 sum = nums[1] + nums[2] = 1 + -1 = 0 。

提示:

  • 1 <= nums.length <= 104
  • -1000 <= nums[i] <= 1000

注意:本题与主站 1991 题相同:1991. 找到数组的中间位置 - 力扣(LeetCode)

思路

  1. 先统计后缀和,然后不断移动指针更新前缀和和后缀和(反过来也行,但是反过来是逆向访问似乎不如正向能够利用得到内存的空间连续性,所以感觉还是现在写的这种好)。

代码实现

class Solution {
public:int pivotIndex(vector<int>& nums) {int i = 0, prefix = 0, suffix = 0, n = nums.size();for(i = 1; i < n; i++) suffix += nums[i];if(prefix == suffix) return 0;i = 0;while(i < n-1) {prefix += nums[i++];suffix -= nums[i];if(prefix == suffix) return i;}return -1;}
};

复杂度分析

  • 时间复杂度:O(n)。
  • 空间复杂度:O(1)。

官方题解

  • 官方题解的一个想法挺有巧思的,不过操作数上应该是比我这个实现要多的,还是分享一下:
    • 如何判断是不是数组中心下标,即判断前缀和*2+当前数是否等于数组总和total,因为如果是中心小标的话,前后缀和相等,也就等于前缀和*2了。

相关文章:

  • 【FreeRTOS】事件标志组
  • 58、微服务保姆教程(一)
  • 第十一天 主菜单/设置界面 过场动画(Timeline) 成就系统(Steam/本地) 多语言支持
  • HTML 模板技术与服务端渲染
  • 2022李宏毅老师机器学习课程笔记
  • 【尚硅谷Redis6】自用学习笔记
  • 【C++游戏引擎开发】第25篇:方差阴影贴图(VSM,Variance Shadow Maps)
  • 使用Python脚本在Mac上彻底清除Chrome浏览历史:开发实战与隐私保护指南
  • chrome://inspect/#devices 调试 HTTP/1.1 404 Not Found 如何解决
  • 伊克罗德信息亮相亚马逊云科技合作伙伴峰会,以ECRobot 智能云迁移助手在GenAI Tech Game比赛勇夺金牌!
  • 【文献阅读】建立高可信度的阴性样本,改进化合物-蛋白质相互作用预测
  • CSS常遇到自适应高度动画、带三角气泡阴影一行样式解决
  • 论文阅读:2024 NeurIPS Group Robust Preference Optimization in Reward-free RLHF
  • Jenkins Pipeline 构建 CI/CD 流程
  • Promethues 普罗米修斯
  • 【Linux篇】理解信号:如何通过信号让程序听从操作系统的指令
  • Memcached 主主复制架构搭建与 Keepalived 高可用实现
  • 9.ArkUI List的介绍和使用
  • MCP认证考试技术难题实战破解:从IP冲突到PowerShell命令的深度指南
  • Flutter Dart中的类 对象
  • 流浪猫给车主造成困扰,长春一小区拟投药应对?律师:此举欠妥
  • 特朗普声称中方领导人打了电话,外交部:近期中美元首没有通话
  • 从 “沪惠保” 到 “沪骑保”看普惠保险的 “上海样式”
  • 王一博赛车故障退赛冲上热搜,工作室回应:下次再战
  • 国家市监总局:民生无小事,严打民生领域侵权假冒违法行为
  • 我国成年国民综合阅读率82.1%,数字化阅读接触率首超80%