【LeetCode每日一题】——724.寻找数组的中心下标

news2024/12/27 12:08:51

文章目录

  • 一【题目类别】
  • 二【题目难度】
  • 三【题目编号】
  • 四【题目描述】
  • 五【题目注意】
  • 六【题目示例】
  • 七【题目提示】
  • 八【解题思路】
  • 九【时间频度】
  • 十【代码实现】
  • 十一【提交结果】

一【题目类别】

  • 前缀和

二【题目难度】

  • 简单

三【题目编号】

  • 724.寻找数组的中心下标

四【题目描述】

  • 给你一个整数数组 nums ,请计算数组的 中心下标
  • 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。
  • 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。
  • 如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1

五【题目注意】

  • 本题与主站 1991 题相同:https://leetcode-cn.com/problems/find-the-middle-index-in-array/

六【题目示例】

  • 示例 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 < = n u m s . l e n g t h < = 1 0 4 1 <= nums.length <= 10^4 1<=nums.length<=104
  • − 1000 < = n u m s [ i ] < = 1000 -1000 <= nums[i] <= 1000 1000<=nums[i]<=1000

八【解题思路】

  • 利用前缀和的思想解决该问题
  • 利用两个变量分别记录左右部分数字和
    • 左侧数字和初始化为0
    • 右侧数字和初始化为整个数组的和
  • 然后使数组中每个值都会当一次“中心下标”,以计算左右侧数组之和是否相等,其中
    • 左侧数字和通过加当前位置值获得
    • 右侧数字和通过减当前位置值获得
  • 通过对比即可得到数组的中心下标
  • 最后返回结果即可
  • 具体细节可以参考下面的代码

九【时间频度】

  • 时间复杂度: O ( n ) O(n) O(n) n n n为传入的数组的长度
  • 空间复杂度: O ( 1 ) O(1) O(1)

十【代码实现】

  1. Java语言版
class Solution {
    public int pivotIndex(int[] nums) {
        // 记录左侧数之和
        int left_sum = 0;
        // 记录右侧数之和
        int right_sum = Arrays.stream(nums).sum();
        // 数组中每个值都会当一次“中心下标”
        for (int i = 0; i < nums.length; i++)
        {
            // 得到右侧数之和
            right_sum -= nums[i];
            // 如果左右侧数之和相等,则找到中心下标
            if (left_sum == right_sum)
            {
                return i;
            }
            // 得到右侧数之和
            left_sum += nums[i];
        }
        // 该数组不存在中心下标
        return -1;
    }
}
  1. Python语言版
class Solution:
    def pivotIndex(self, nums: List[int]) -> int:
        # 记录左侧数之和
        left_sum = 0
        # 记录右侧数之和
        right_sum = sum(nums)
        # 数组中每个值都会当一次“中心下标”
        for i in range(len(nums)):
            # 得到右侧数之和
            right_sum -= nums[i]
            # 如果左右侧数之和相等,则找到中心下标
            if left_sum == right_sum:
                return i
            # 得到右侧数之和
            left_sum += nums[i]
        # 该数组不存在中心下标
        return -1
  1. C语言版
int pivotIndex(int* nums, int numsSize)
{
    // 记录左侧数之和
    int left_sum = 0;
    // 记录右侧数之和
    int right_sum = 0;
    for (int i = 0; i < numsSize; i++)
    {
        right_sum += nums[i];
    }
    // 数组中每个值都会当一次“中心下标”
    for (int i = 0; i < numsSize; i++)
    {
        // 得到右侧数之和
        right_sum -= nums[i];
        // 如果左右侧数之和相等,则找到中心下标
        if (left_sum == right_sum)
        {
            return i;
        }
        // 得到右侧数之和
        left_sum += nums[i];
    }
    // 该数组不存在中心下标
    return -1;
}

十一【提交结果】

  1. Java语言版
    在这里插入图片描述

  2. Python语言版
    在这里插入图片描述

  3. C语言版
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2210021.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python基础路径的迁移

本人未安装anaconda或pycharm等&#xff0c;仅安装了某个python环境&#xff0c;因此以下方法仅针对基础python环境的迁移&#xff0c;不确保其他软件或插件正常运行 第一步将原python路径的整个文件夹剪切到新的路径下 第二步修改系统环境变量&#xff0c;将原来的python路径…

胤娲科技:AI绘梦师——一键复刻梵高《星空》

想象一下&#xff0c;你手中握有一张梵高的《星空》原图&#xff0c;只需轻轻一点&#xff0c;AI便能化身绘画大师&#xff0c;一步步在画布上重现那璀璨星河。 这不是科幻电影中的桥段&#xff0c;而是华盛顿大学科研团队带来的“Inverse Painting”项目&#xff0c;正悄然改变…

【软件工程】McCabe复杂度计算

文章目录 一、定义与公式二、计算步骤三、示例四、注意事项 McCabe复杂度&#xff0c;又称为环路复杂度&#xff08;Cyclomatic Complexity&#xff09;&#xff0c;是一种用来度量软件程序复杂度的经典方法。它通过计算程序中独立路径的数量&#xff0c;帮助开发人员理解代码的…

CMIP6数据处理 ▎单点降尺度、统计方法的区域降尺度、基于WRF模式的动力降尺度

CMIP6数据被广泛应用于全球和地区的气候变化研究、极端天气和气候事件研究、气候变化影响和风险评估、气候变化的不确定性研究、气候反馈和敏感性研究以及气候政策和决策支持等多个领域。这些数据为我们理解和预测气候变化&#xff0c;评估气候变化的影响和风险&#xff0c;以及…

【从感知机到神经网络】

感知机 什么是感知机 公式、框图表示 直观举例 根据身高体重判断胖瘦的感知机。 1、根据已知样本训练出一条直线&#xff0c;用于对非训练样本进行分类&#xff0c;这条直线就是感知机模型。 三维情况下感知机模型是一个平面 感知机的缺陷 缺陷原因 不能处理异或问题&…

【hot100-java】路径总和 III

二叉树篇。 灵神题解 ps: 完结 历时许久的hot100终于结束了&#xff0c;先是python&#xff0c;后是java。 学到了不少语法&#xff0c;也挺爽的&#xff0c;希望接下来几遍会更加熟悉哈哈哈。

解读《ARM Cortex-M3 与Cortex-M4 权威指南》——第1章 ARM Cortex-M处理器简介

1. 三级流水线设计 解释:三级流水线设计意味着处理器在执行指令时可以同时处理多个步骤。这些步骤通常包括取指(Fetch)、译码(Decode)和执行(Execute)。好处:这种设计提高了指令的执行效率,使得处理器能够在每个时钟周期内完成更多的工作,从而提升整体性能。2. 哈佛总…

linux 效率化 - zsh + tmux

文章目录 简介涉及的资料/代码仓库让我们开始吧1. Oh my Zsh!2. 终端主题 - powerlevel10k &#xff08;赋能优雅终端界面&#xff09;3. Oh my Tmux!安装完成&#xff0c;再加点料1. tmux2. zsh 结语参考资料 简介 来看一段操作演示&#xff08;全程键盘&#xff0c;没有鼠标…

Linux系统——RAID

Linux系统——RAID 一、RAID二、模拟RAID创建使用1、创建RAID 52、挂载使用3、模拟RAID 5故障 三、RAID操作方式 一、RAID 冗余磁盘阵列 作用&#xff1a; 1、加快数据读写速度 2、提升数据可靠性 使用原则&#xff1a; 使用同品牌、同型号、同容量的硬盘 RAID 0 至少两块硬盘…

【IEEE独立出版 | 厦门大学主办】第四届人工智能、机器人和通信国际会议(ICAIRC 2024)

【IEEE独立出版 | 厦门大学主办】 第四届人工智能、机器人和通信国际会议&#xff08;ICAIRC 2024&#xff09; 2024 4th International Conference on Artificial Intelligence, Robotics, and Communication 2024年12月27-29日 | 中国厦门 >>往届均已成功见刊检索…

harbor 如何做到物理删除镜像 harbor镜像清理脚本

一、背景 相比于nexus&#xff0c;harbor的一大优点是方便及时清理无用的docker镜像。本文就harbor怎么设置清理&#xff0c;梳理一下具体的操作办法。 harbor 版本是 v2.9.0 二、目标 随着我们推送至仓库的镜像越来越多&#xff0c;带来的一个最大运维问题就是存储空间的浪…

【Java IO流】对象与字节流的序列化和反序列化

哈喽&#xff0c;哈喽&#xff0c;大家好~ 我是你们的老朋友&#xff1a;保护小周ღ 今天给大家带来的是 【Java IO流】对象与字节流的序列化和反序列化&#xff0c;首先了解, 本次主题有啥实际应用, 学习 ByteArrayOutputStream / ByteArrayInputStream 字节数组流, ObjectO…

微信开发者工具:音乐小程序报错

报错信息 GET http://localhost:3000/1.mp3 net::ERR CONNECTION REFUSED (env: Windows,mp,1.06.2303220;lib:3.6.0) 原因&#xff1a;小程序没有直接获取本地文件&#xff0c;为了提高访问速度&#xff0c;而采用放到网络服务器中网络访问的方式获取文件内容 解决办法&#…

H7-TOOL的LUA小程序教程第14期:任意波形信号发生器,0-20mA输出和微型数控电源(2024-10-11,已更新)

LUA脚本的好处是用户可以根据自己注册的一批API&#xff08;当前TOOL已经提供了几百个函数供大家使用&#xff09;&#xff0c;实现各种小程序&#xff0c;不再限制Flash里面已经下载的程序&#xff0c;就跟手机安装APP差不多&#xff0c;所以在H7-TOOL里面被广泛使用&#xff…

空间解析几何3-空间点到线段和平面的距离【附MATLAB代码】

目录 空间中点到线段的距离 空间中点到平面的投影和距离 matlab代码 空间中点到线段的距离 空间中点到平面的投影和距离 matlab代码 function [dis,P2,t] point2Line (A1,B1,C1) %求空间一点到一线段的最短距离 %[dis,P2,Q2]pointSegmentDistance(A,B,C) %A B为线段首末端…

【安当产品应用案例100集】021- 针对电网接入设备的控制指令安全解决方案

一、电网对接入设备的控制指令安全体现在哪些方面 电网接入设备的控制指令安全必要性不言而喻。为了保障电网的稳定运行、防止恶意攻击和破坏、提升电网智能化水平、满足法律法规和监管要求以及提升用户满意度和社会形象&#xff0c;必须加强电网接入设备的控制指令安全管理。…

2.html编辑器介绍

html编辑器介绍 HTML 编辑器推荐 理论上我们可以使用记事本进行html编码和开发&#xff0c;但是在实际开发html页面的时候&#xff0c;使用一些专业的开发工具可以使我们更加快速和高效的进行开发&#xff0c;下面介绍几种开发工具&#xff1a; VS Code&#xff1a;https://…

UE5 C++ 通过绑定编辑器事件实现控制柄顶点编辑

开发中经常会遇到编辑器环境中制作工具拖拽控制柄编辑内容的需求&#xff0c;此时可以通过Editor事件拿到对应回调&#xff0c;进行相应更新&#xff1a; 1.创建Mesh编辑Actor类 创建一个Mesh编辑Actor类&#xff0c;提供Mesh顶点编辑的相关逻辑。 .h: #pragma once#inclu…

机器人的应用 基于5G的变电站智慧管控系统

背景概述 一、电力行业面临的挑战与变革 随着全球工业化和信息化的快速发展&#xff0c;电力行业作为国民经济的基础性行业&#xff0c;其重要性日益凸显。然而&#xff0c;随着电力网络的不断扩展和复杂化&#xff0c;变电站和开关站作为电力传输与分配的关键节点&#xff0…

jdk环境变量配置--小总结

1、jdk安装路径变量 2、在path下添加环境变量