(Leetcode) 寻找数组的中心索引- Python实现

2023-11-05

题目:

给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。
我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。
如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。

示例 :

输入: nums = [1, 7, 3, 6, 5, 6], 输出: 3

输入: nums = [1, 2, 3], 输出: -1

说明:
nums 的长度范围为 [0, 10000]。任何一个 nums[i] 将会是一个范围在 [-1000, 1000]的整数。

-----------------------------------------------------------------------

解法1:常规做法,超时

class Solution(object):
    def pivotIndex(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if len(nums) < 3:
            return -1

        for i in range(len(nums)):
            if sum(nums[:i]) == sum(nums[i+1:]):
                return i
        return -1

解法2:先求出所有数的总和,然后遍历数组,如果遍历数的左边*2 + 遍历数 == 总和 , 遍历数即为中心索引。


class Solution:
    def pivotIndex(self, nums):
        """
        :type nums: List[int]
        :rtype: int


        # 计算数组的和
        res = sum(nums)

        # 初始化左边的和
        lsum = 0
   
        for i, num in enumerate(nums):
            if lsum * 2 + num == res:
                return i
            lsum += num

        return -1

 

参考:

https://blog.csdn.net/maka_uir/article/details/86764051

https://blog.csdn.net/wangsiyu34567/article/details/82964413

https://blog.csdn.net/huhehaotechangsha/article/details/86513651

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(Leetcode) 寻找数组的中心索引- Python实现 的相关文章

  • truffle 安装以及基本指令

    1 linux下安装方式 npm install g truffle 环境要求 NodeJS 5 0 Windows Linux 或Mac OS X 2 创建工程 mkdir testdir cd testdir truffle init
  • ChatGPT 原理与核心技术介绍(自然语言处理NLP的发展与Transformer的概念)

    文章目录 1 定义 ChatGPT与自然语言处理NLP 1 1 图灵测试 1 2 建模形式 多轮历史对话原理 1 3 NLP 的发展历程 规则 gt 统计 gt 强化学习 1 4 NLP 技术的发展脉络 1 5 ChatGPT 的神经网络结
  • 巧用枚举类型来管理数据字典

    巧用枚举类型来管理数据字典 文章目录 巧用枚举类型来管理数据字典 背景 管理数据字典方法 使用接口来管理数据字典 使用数据表管理数据字典 枚举的增强使用 枚举的优化策略 第一步优化 枚举继承接口 第二步优化 增加 Bean 存枚举值 使用享

随机推荐

  • apache mina 学习笔记之一:mina简介和环境搭建

    Mina简介 Apache MINA Multipurpose Infrastructure for Network Applications 是 Apache 组织一个较新的项目 它为开发高性能和高可用性的网络应用程序提供了非常便利的框架
  • 腾讯云图,让数据说话

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由腾讯云数据库 TencentDB发表于云 社区专栏 一 腾讯云图 数据之美 了解腾讯云图之前 我们先来看看数据可视化 这是星云图 他表示的是QQ同时在线人数 看到这个图大家脑袋
  • SSTI 无回显绕过_带外注入

    SSTI 无回显注入 带外注入 SSTI课程推荐 重庆橙子科技 SSTI模板注入 我在这里学到了很多 配合 docker 靶场 mcc0624 flask ssti 食用效果更佳 建议各位在学习带外时先基本掌握 TCP IP 的基础知识和
  • MyBatis查询时间格式转换yyyy-MM-dd HH:mm:ss

    MyBatis查询时间格式转换yyyy MM dd HH mm ss 一 通过配置model model private Date createTime JsonFormat pattern yyyy MM dd HH mm ss priv
  • 爬虫第六课:爬取携程酒店数据

    首先打开携程所有北京的酒店http hotels ctrip com hotel beijing1 简简单单 源代码中包含我们需要的酒店数据 你以为这样就结束了 携程的这些数据这么廉价地就给我们得到了 事实并不是如此 当我们点击第二页的时候
  • 怎么使用LINQ方法来比较自定义类型对象

    LINQ提供了方便的语法和很多操作对象集合的有用的方法 但是 要让LINQ比较方法如Distinct或Intersect能正确处理 类型必须要满足一些条件 让我们看看Distinct方法 它从集合中返回所有的不重复对象 List
  • 【我的面试-前端】以下是我在参加面试过程中被问到的问题以及答案

    JavaScript 数据类型 面试中经常被问到 JavaScript 数据类型都有哪些 有些时候面试者因为紧张连这最基础的题目都回答不出来或者回答不够全面 下面我们来具体了解下 JavaScript 数据类型吧 首先 需要答出 JavaS
  • 颜值超高的简单计算器(HTML+CSS+JS)

    先来看一下效果吧
  • k8s通过nfs-provisioner配置持久化存储

    一 nfs client provisioner简介 Kubernetes集群中NFS类型的存储没有内置 Provisioner 但是你可以在集群中为NFS配置外部Provisioner Nfs client provisioner是一个开
  • vue项目实现路由按需加载(路由懒加载)的3种方式

    vue项目实现按需加载的3种方式 转自 https segmentfault com a 1190000011519350 vue异步组件 es提案的import webpack的require ensure 1 vue异步组件技术 异步加
  • 修改本地host文件

    在有些时候可能因为访问一些网址的时候 可能因为浏览器对部分网站的签名不认可导致无法访问 根据浏览器不同 有时候可以选择高级选项允许访问 有时候只能停留在报错页 这时候可以通过设置本地的host文件 允许浏览器访问 首先我们找到目录C Win
  • VSCode HTML代码中怎么导入其他文件夹中的内容

    在标签下插入 link rel stylesheet href css xxx css 其中 css xxx css 为路径标签 意思是在一个叫做css的文件夹中有的一个叫xxx css的css样式文件
  • sqli-labs第二十六二十六a关

    这关油条加你的可以试试linux搭建sqlilabs这样比较简单 需要注意的 本关可能有的朋友在 windows 下无法使用一些特殊的字符代替空格 此处是因为 apache 的解析的问题 这里请更换到 linux 平台下 本关结合 25 关
  • 智能合约(一)————智能合约入门

    1 智能合约的基本组成 1 1 程序版本 1 2 合约声明 1 3 状态变量 1 4 合约方法 在这里constant相当于他声明这个局部变量不能更改 但是他并没有实际作用 实际就只是警示作用 2 地址adress address bala
  • GDB忽略SIGPWR和SIGCPU这两个信号

    用GDB 调试Java程序 陈皓 http blog csdn net haoel 背景 想要使用GDB调试程序 就需要用GNU的编译器编译程序 如 用GCC编译的C C 的程序 才能用GDB调试 对于Java程序也是一样的 如果想要用GD
  • 【嵌入式】7段数码管电路原理

    电路原理说明 中间的是F 小数点是G 上面的对应具体管 下面的代表各个大管 两两对应 上面4个为一个字节 有两个字节 下面直接为一个字节 要让某个数字亮起必须满足两个逻辑条件 对应的 LED SEL 必须为 0 低电频 代表对应笔画的 LE
  • 无符号整形和有符号整形的比较

    对无符号整形比较的错误认知 整形数据存储形式 进制的转换 原码 反码 补码 转换原理 代码演示 总结 整形数据存储形式 在计算机内存里 整数以补码形式存储 正数的补码即原码 进制的转换 原码 反码 补码 正数的原码 正数的反码 正数的补码
  • 从进程中操作WPF窗体的显示隐藏

    一 问题描述 如何在一个进程中 打开另一个进程中的wpf已经隐藏的窗体 二 解决方案 1 在WPF进程中 获取该窗体的句柄 并保存到某个文件 这个文件可以是内存映射文件 也可以是普通的xml文件 在WPF的MainWindow中 添加 pr
  • Manjaro 根据连接速度排序配置源地址

    一 引言 使用 Manjaro 已经有一段时间了 一开始按照某一篇博客手动配置了国内源 最近公司搬了新的办公室 发现升级系统时出现连接不到更新服务器的问题 sudo pacman Syu 一定是源访问出现了问题 那么怎么办呢 二 解决 通过
  • (Leetcode) 寻找数组的中心索引- Python实现

    题目 给定一个整数类型的数组 nums 请编写一个能够返回数组 中心索引 的方法 我们是这样定义数组中心索引的 数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和 如果数组不存在中心索引 那么我们应该返回 1 如果数组有多个中心索引