首页 > 其他分享 >74 寻找数组的中心下标

74 寻找数组的中心下标

时间:2022-11-11 09:34:29浏览次数:66  
标签:下标 中心 nums sum 74 数组 左侧

题目 74 寻找数组的中心下标

给你一个整数数组 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。

代码

class Solution:
    def pivotIndex(self, nums: List[int]) -> int:
        for i in range(len(nums)):
            leftsum = 0
            rightsum = 0
            leftsum += sum(nums[:i])
            rightsum += sum(nums[i+1:len(nums)])
            if leftsum == rightsum:
                return i
            else:
                continue
        return -1

标签:下标,中心,nums,sum,74,数组,左侧
From: https://www.cnblogs.com/edkong/p/16879560.html

相关文章

  • C/C++:探究二维数组的数组名
    C/C++:探究二维数组的数组名与数组指针先提一嘴:一维数组的数组名对于一个一维数组而言,其数组名是该数组的首地址,也就是一个数组首元素的指针,如下:#include<stdio.h>int......
  • mybatis查询时报下标越界异常
    mybatis的sql语句没有问题,但是查询时报下标越界的异常:Cause:java.lang.IndexOutOfBoundsException:Index:3,Size:3很有可能是mybatis映射的实体类的无参构造写有写,......
  • 560.和为k的子数组
    给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的连续子数组的个数 。示例1:输入:nums=[1,1,1],k=2输出:2示例2:输入:nums=[1,2,3......
  • 力扣 81. 搜索旋转排序数组 II
    81.搜索旋转排序数组II已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同。在传递给函数之前,nums 在预先未知的某个下标 k(0<=k<nums.leng......
  • 类内初始化数组
    1,问题:就是在类内定义了一个数组,但是我又不想用for循环一个个元素去初始化,于是我去网上寻找答案。2,网上大多数答案:在类内创建数组时选择static修饰,也就是将这个数组变为......
  • 941 有效的山脉数组
    题目941有效的山脉数组给定一个整数数组arr,如果它是有效的山脉数组就返回true,否则返回false。让我们回顾一下,如果arr满足下述条件,那么它是一个山脉数组:arr.leng......
  • 数组为函数参数
    1、数组引用作为函数形参,链接1)输入必须为10个元素!2)可以将数组定义为类型voidprint(int(&arr)[10]){for(autoi:arr){cout<<i<<endl;}}......
  • 「LOJ2474」北校门的未来
    题目点这里看题目。你有一棵树\(T\),初始时\(T=(V=\{1\},E=\varnothing)\)。你将要进行\(q\)次操作,每次操作的形式为以下两种之一:第一种操作:给定参数\(x,y\),保证......
  • 不修改数组找出重复的数字
    14.不修改数组找出重复的数字题给定一个长度为n+1的数组nums,数组中所有的数均在1∼n的范围内,其中n≥1。请找出数组中任意一个重复的数,但不能修改输入的数组。数据......
  • 查找字符串数组中的最长公共前缀
     import java.util.*;public class Solution {    /**     *      * @param strs string字符串一维数组      * @return string......