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

文章目录

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

一【题目类别】

  • 前缀和

二【题目难度】

  • 简单

三【题目编号】

  • 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.rhkb.cn/news/447658.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

挖掘空间数据要素典型领域应用场景

空间数据要素作为数字经济的基石&#xff0c;正在多个领域发挥着重要作用。随着技术的发展&#xff0c;空间数据的应用场景不断拓展&#xff0c;为各行各业带来了深刻的变革。以下是几个典型的空间数据要素应用领域&#xff1a; 1. 城市规划与管理 空间数据在城市规划和管理中…

opencv学习:人脸识别器特征提取BPHFaceRecognizer_create算法的使用

BPHFaceRecognizer_create算法 在OpenCV中&#xff0c;cv2.face.LBPHFaceRecognizer_create()函数用于创建一个局部二值模式直方图&#xff08;Local Binary Patterns Histograms&#xff0c;简称LBPH&#xff09;人脸识别器。LBPH是一种用于人脸识别的特征提取方法&#xff0…

Python 入门(二、什么是 Python 的虚拟环境)

Python 入门第二课 &#xff0c;Python 的虚拟环境...... by 矜辰所致前言 本来以为环境搭建好了&#xff0c;就直接开始敲代码了&#xff0c;但是一直看到一个专业词汇&#xff1a;虚拟环境。 对于习惯了嵌入式 C 语言开发博主来说&#xff0c;一开始确实有点不明白&#xf…

k8s杂记

在node节点内部使用kubectl&#xff1a; rootmultinode-demo-m02:/# ps aux | grep kubelet root 218 3.1 1.6 2066316 62516 ? Ssl 07:35 0:29 /var/lib/minikube/binaries/v1.30.0/kubelet --bootstrap-kubeconfig/etc/kubernetes/bootstrap-kubelet.con…

PL/SQL Developer如何连接Oracle数据库(汉化)

简介 PL/SQL Developer是一种用于Oracle数据库开发的集成开发环境&#xff08;IDE&#xff09;。它提供了一个可视化的界面&#xff0c;使开发人员能够方便地编写、调试和执行PL/SQL代码。PL/SQL Developer还具有其他功能&#xff0c;如数据库对象浏览器、SQL编辑器、数据导入…

JavaScript | 定时器(setInterval和clearInterval)的使用

效果图如下&#xff1a; 当用户第一次看到这个页面时&#xff0c;按钮是不可点击的&#xff0c;并显示一个5秒的倒计时。倒计时结束后&#xff0c;按钮变为可点击状态&#xff0c;并显示“同意协议”。这样做的目的是确保用户有足够的时间阅读用户协议。 <!DOCTYPE html>…

AI核身-金融场景凭证篡改检测YOLO原理

引言 YOLO (You Only Look Once) 模型是一种先进的实时目标检测算法&#xff0c;它在计算机视觉领域具有重要的地位。YOLO以其速度和准确性而闻名&#xff0c;能够快速识别图像和视频中的各种物体。这使得它在自动驾驶、安全监控、机器人技术、医学影像分析等众多领域都有着广…

HTML+CSS总结【量大管饱】

文章目录 前言HTML总结语义化标签常用标签H5新的语义元素H5的媒体标签\<embed> 元素&#xff08;少用&#xff09;\<object>元素&#xff08;少用&#xff09;\<audio>\<video> 元素包含关系iframe元素嵌入flash内容常用表单inputselect CSS总结权重样…

【JAVA毕业设计】基于Vue和SpringBoot的渔具租赁系统

本文项目编号 T 005 &#xff0c;文末自助获取源码 \color{red}{T005&#xff0c;文末自助获取源码} T005&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 渔…

Go 语言应用开发:从入门到实战

Go 语言应用开发&#xff1a;从入门到实战 引言 Go&#xff08;Golang&#xff09;是由 Google 开发的一种开源编程语言&#xff0c;设计初衷是提高编程效率&#xff0c;尤其是在高并发场景下表现出色。Go 语言以其简洁、易学、高效并发的特性&#xff0c;逐渐成为开发者的首…

如何将mov格式的视频转换mp4?5种解决方法任你选!

MOV即QuickTime影片格式&#xff0c;它是Apple公司开发的一种音频、视频文件格式&#xff0c;用于存储常用数字媒体类型。然而&#xff0c;它的兼容性主要局限于苹果生态系统。有时&#xff0c;我们需要IOS和Mac设备的视频图片保存到安卓手机或Windows系统中&#xff0c;却发现…

在线matlab环境

登陆https://ww2.mathworks.cn/ 在线文档https://ww2.mathworks.cn/help/index.html 在线环境[需要先登陆]

Java - WebSocket

一、WebSocket 1.1、WebSocket概念 WebSocket是一种协议&#xff0c;用于在Web应用程序和服务器之间建立实时、双向的通信连接。它通过一个单一的TCP连接提供了持久化连接&#xff0c;这使得Web应用程序可以更加实时地传递数据。WebSocket协议最初由W3C开发&#xff0c;并于2…

虚拟机VMware Workstation下CentOS7与主机Windows系统的文件夹共享

虚拟机设置&#xff1a; Linux中安装&#xff1a; yum install open-vm-tools# 判断是否共享&#xff0c;显示共享文件夹则为成功&#xff1a; vmware-hgfsclient# 挂载&#xff1a; vmhgfs-fuse .host:/ /mnt/hgfs/

ubuntu24 finalshell 无法连接ubuntu服务器, 客户端无法连接ubuntu, 无法远程连接ubuntu。

场景&#xff1a; 虚拟机新创建一个最小化的ubuntu服务器&#xff0c;使用finalshell连接服务&#xff0c;发现连接不上。 1. 查看防火墙ufw 是否开启&#xff0c;22端口是否放行 2. 查看是否安装openssh server, 并配置 我的问题是安装了openssh server 但是没有配置root可…

数据挖掘学习笔记:朴素贝叶斯 | Python复现

数据挖掘学习笔记&#xff1a;朴素贝叶斯 机器学习系列&#xff08;四&#xff09;&#xff1a;朴素贝叶斯&#xff08;华强买瓜版&#xff09; - yyxy的文章 - 知乎 十分钟&#xff0c;让你再也忘不掉贝叶斯分类 - VoidHaruhi的文章 - 知乎 《机器学习》&#xff08;西瓜书&am…

Web自动化Demo-Kotlin+Selenium

1.新建工程 打开Aqua&#xff0c;点击New Project选中Kotlin&#xff0c;配置如下&#xff1a; 然后在build.gradle.kts文件中添加依赖 plugins {kotlin("jvm") version "1.9.23" }group "org.example" version "1.0-SNAPSHOT"rep…

【尚硅谷】FreeRTOS学习笔记(更新中更新时间2024.10.12)

在网上看到的一段很形象的描述&#xff0c;放在这里给大家娱乐一下。 裸机开发&#xff1a;n个人拉屎&#xff0c;先进去一个拉完&#xff0c;下一个再来。看门狗&#xff1a;如果有人拉完屎还占着&#xff0c;茅坑刷视频&#xff0c;把他拖出去中断系统&#xff1a;n个人拉屎&…

2-2 数据库的介绍

无处不在的数据库 信息化社会&#xff0c;无处不在的就是数据。数据包括数据的存储和数据的计算&#xff0c;编程语言可以归纳为数据计算的一类。 数据库就是存储数据的一个库。 数据库如何存储数据&#xff1f; 可以分为3个层级&#xff0c;分别是库&#xff0c;表&#x…

一、el-table的滚动条加粗并解决遮挡内容问题

近期接到产品提的需求&#xff0c;反馈用户说table里面的滚动条过小&#xff0c;不方便拖动&#xff0c;希望加粗&#xff0c;然后我就研究了下如何加粗&#xff0c;发现加粗后会导致遮挡内容的问题&#xff0c;并予以解决。以下是实现和解决的方法和步骤。 先看看官网的滚动条…