首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LeetCode 724:寻找数组的中心索引 Find Pivot Index

LeetCode 724:寻找数组的中心索引 Find Pivot Index

作者头像
爱写bug
发布于 2019-08-01 02:24:04
发布于 2019-08-01 02:24:04
56601
代码可运行
举报
文章被收录于专栏:爱写Bug爱写Bug
运行总次数:1
代码可运行

Given an array of integers nums, write a method that returns the "pivot" index of this array.

We define the pivot index as the index where the sum of the numbers to the left of the index is equal to the sum of the numbers to the right of the index.

If no such index exists, we should return -1. If there are multiple pivot indexes, you should return the left-most pivot index.

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

示例 1:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
输入: 
nums = [1, 7, 3, 6, 5, 6]
输出: 3
解释: 
索引3 (nums[3] = 6) 的左侧数之和(1 + 7 + 3 = 11),与右侧数之和(5 + 6 = 11)相等。
同时, 3 也是第一个符合要求的中心索引。

示例 2:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
输入: 
nums = [1, 2, 3]
输出: -1
解释: 
数组中不存在满足此条件的中心索引。

说明:

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

解题思路:

累加自左向右逐个进行即可。

判断中心索引条件:左侧索引如果和右侧相等,即二倍加左侧累加和+中心索引=总和

java:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution {
    public int pivotIndex(int[] nums) {
       int sumLeft=0,sum=0;
        for (int n:nums){
            sum = sum + n;
        }
        int numsSize=nums.length-1;
        for(int i=0;i<=numsSize;i++){
            if(i==0){
                sumLeft=0;
            }else{
                sumLeft+=nums[i-1];
            }
            //左侧索引如果和右侧相等,即二倍左侧加中心索引=总和
            if(sumLeft*2+nums[i]==sum){
                return i;
            }
        }
       return -1;
    }
}

特别说明一下,索引一定要从0开始到最后一个止,因为题目中心索引右侧可以为负数,相加可能为0。

python3

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution:
    def pivotIndex(self, nums: List[int]) -> int:
        """
        :type nums: int
        """
        sumAll=sum(nums)
        leftSum=0
        for i in range(len(nums)):
            if(i==0):
                leftSum=0
            else:
                leftSum+=nums[i-1]
            #左侧索引如果和右侧相等,即二倍加左侧中心索引=总和
            if(leftSum*2+nums[i]==sumAll):
                return i
        return -1
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爱写Bug 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MyBatis-多表查询(一对一)
因为一个学生信息只能在一个班级里,所以从查询学生信息出发关联查询班级信息为一对一查询。
星哥玩云
2022/09/14
3690
MyBatis-多表查询(一对一)
MyBatis注解(多表)
@Result(column=" “,property=”",one=@One(select=""))
星哥玩云
2022/09/14
5700
MyBatis-延迟加载
就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载。
星哥玩云
2022/09/14
1.1K0
MyBatis_resultMap 的关联方式实现多表查询(多对一)
项目结构 1.实体类 2.Mapper层 3.service层 4.工具层 5.测试层 项目截图 1、实体类 创建班级类(Clazz)和学生类(Student),添加相应的方法。
时间静止不是简史
2020/07/26
1.4K0
MyBatis-多表查询(多对多)
老师信息与学生信息为多对多的关系,一个学生有多个老师,一个老师同样可以有多个学生。要想知道老师下的学生信息,不能直接查到我们的学生信息,只能通过中间表(tors)才能关联到学生信息。
星哥玩云
2022/09/14
1.5K0
MyBatis-多表查询(多对多)
MyBatis 多表操作
  关系数据库中第一个表中的单个行只可以与第二个表中的一个行相关,且第二个表中的一个行也只可以与第一个表中的一个行相关。
Demo_Null
2020/09/28
3600
MyBatis 多表操作
MyBatis注解(单表)
1、MyBatis注解开发前的准备 1.1、MyBatis常用注解 @Insert:实现新增 @Update:实现更新 @Delete:实现删除 @Select:实现查询 @Result:实现结果集封装 @Results:可以与@Result 一起使用,封装多个结果集 @ResultMap:实现引用@Results 定义的封装 @One:实现一对一结果集封装 @Many:实现一对多结果集封装 @SelectProvider: 实现动态SQL映射 @CacheNamespace:实现注解二级缓存的使
星哥玩云
2022/09/14
2850
Spring入门
Spring 是一个主流的 Java Web 开发框架,该框架是一个轻量级的应用框架,具有很高的凝聚力和吸引力。Spring 以 IoC(Inverse of Control,控制反转)和 AOP(Aspect Oriented Programming,面向切面编程)为内核。
星哥玩云
2022/09/14
7990
Spring入门
java进阶|Mybatis系列文章(三)表关联查询操作
整个项目所需要的xml文件进行数据的增删改查操作ClassesMapper.xml文件
码农王同学
2020/04/27
8400
Mybatis 注解
  我们可以看到,明明结果已经查询出来了,为什么打印出来却是空的。这个是因为属性名和列名不一致造成的,类似于我们这种 sId ☞ s_id 可以打开驼峰之自动转换。如果二者之间没有任何联系就需要使用 @Results 一一映射。
Demo_Null
2020/09/28
3530
Mybatis 注解
【MyBatis】XML版快速入门——练习题
@Mapper作用与 Mapper 用于告诉sprigng框架此接口的实现类由Mybatis负责创建,并将其实现类对象存储到spring容器中。
陶然同学
2023/05/09
2960
【MyBatis】XML版快速入门——练习题
【愚公系列】2023年03月 Java教学课程 118-Mybatis(多表操作)
多表模型是一种关系型数据库设计模式,它使用多个表格来存储和管理数据。在多表模型中,每个表格都包含一组相关的数据,并使用外键等关系来与其他表格建立连接。这种模型通常用于处理复杂的数据结构,例如具有多个关系的实体或需要动态添加或删除属性的实体。
愚公搬代码
2023/04/04
6840
【愚公系列】2023年03月 Java教学课程 118-Mybatis(多表操作)
_Mybatis关联查询【附实战案例】
会洗碗的CV工程师
2023/11/20
2050
_Mybatis关联查询【附实战案例】
MyBatis多表查询详解
MyBatis多表查询 0. 分析 一对一 一个用户只能拥有一个一个账户 sql语句: select u.*,a.id as aid,a.uid,a.money from account a,user u where a.uid =u.id; 一对多 一个用户可以拥有多个账户 sql语句 select u.*,a.id as aid ,a.uid,a.money from user u left outer join account a on u.id =a.uid 多对多
不愿意做鱼的小鲸鱼
2022/09/24
1K0
MyBatis多表查询详解
MyBatis 详解(一对一,一对多,多对多)
1、什么是MyBatis?   MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,
IT可乐
2018/01/04
5.5K0
MyBatis 详解(一对一,一对多,多对多)
Mybatis【14】-- Mybatis如何实现一对多查询?
注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-10-one2many,需要自取,需要配置maven环境以及mysql环境(sql语句在resource下的test.sql中),觉得有用可以点个小星。
秦怀杂货店
2021/01/23
1.2K0
Mybatis 实战:一对多关系
公司有若干名员工,此时,该公司与其员工之间的关系就属于一对多的关系。根据以上信息,我们可以创建公司信息与员工信息两张表。其中,公司表沿用上一个例子中的表。根据公司编号(ID)查询公司信息及其员工信息。
耕耘实录
2021/12/07
3830
_MyBatis注解开发---实现自定义映射关系和关联查询
会洗碗的CV工程师
2023/11/21
3570
_MyBatis注解开发---实现自定义映射关系和关联查询
MyBatis一对多,多对一(图文并茂)
链接:https://pan.baidu.com/s/1FX4TmyKqZQx39ncn8TItfw 密码:1h1i
CBeann
2023/12/25
2850
MyBatis一对多,多对一(图文并茂)
Mybatis分解式查询
一、Mybatis一对多分解式查询 分解式查询就是将一条Sql语句拆分成多条 在MyBatis多表查询中,使用连接查询时一个Sql语句就可以查询出所有的数据。如: # 查询班级时关联查询出学生 select *    from classes    left join student    on student.classId = classes.cid 也可以使用分解式查询,即将一个连接Sql语句分解为多条Sql语句,如: # 查询班级时关联查询出学生 select * from
会洗碗的CV工程师
2023/04/12
4090
Mybatis分解式查询
相关推荐
MyBatis-多表查询(一对一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验