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

724. 寻找数组的中心下标

时间:2023-06-26 14:00:38浏览次数:45  
标签:下标 nums int sum 724 数组 left

给你一个整数数组 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 ,二者相等。

> 代码


class Solution {
public:
    int pivotIndex(vector<int>& nums) {
        int sum = 0;
        for(int i = 0;i < nums.size();i++){
            sum += nums[i];
        }
        int left_sum = 0;
        for(int i = 0;i < nums.size();i++){
            int right_sum = sum - nums[i] - left_sum;
            if(left_sum == right_sum){
                return i;
            }
            left_sum += nums[i];
        }
        return -1;
    }
};

标签:下标,nums,int,sum,724,数组,left
From: https://www.cnblogs.com/lihaoxiang/p/17505457.html

相关文章

  • leetcode-前缀和数组&差分数组
    前缀和数组:前缀和技巧适用于快速、频繁地计算一个索引区间内的元素之和。(仅仅适用于原数组不变的情况,如果原数组经常修改,则需要考虑差分数组。)模版如下:classPrefixSum{//前缀和数组privateint[]preSum;/*输入一个数组,构造前缀和*/publicPrefixSu......
  • console.log 弊端-数组有值但是打印出来空值
    情况:数组有对象但是length为0原因:该数组原本有值,但是被数组操作api改变了数组,打印出来的值是已经被操作的数组 ......
  • 获取数组对象中的某一属性值
    如果想要获取到arr数组对象中key为name的属性,需要用到引号letarr=[{name:'1',prop:'123'},{name:'2',prop:'111'}]arr.forEach(item=>{console.log('123',item['name'])})......
  • JS(数组)
    一数组的概念问:之前学习的数据类型,只能存储一个值。如果我们想存储班级中所有学生的姓名,那么该如何存储呢?答:可以使用数组(Array)。数组可以把一组相关的数据一起存放,并提供方便的访问(获取)方式。问:什么是数组呢?答:数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存......
  • [数据结构]Binary Indexed Trees(树状数组)
    BinaryIndexedTrees(树状数组)1.lowbitlowbit(x)是x的二进制表达式中最低位的1所对应的值。比如,6的二进制是110,所以lowbit(6)=2。lowbit(x)=x&(-x)2.定义,查询,修改(eg1)\(a1,a2,...,an\)能在BZ的时间复杂度下完成:单点加,\(ai+=d\)查询前缀和\(\sum_{i=1}^{x}ai......
  • 189. 旋转数组
    给定一个整数数组nums,将数组中的元素向右轮转k个位置,其中k是非负数。示例1:输入:nums=[1,2,3,4,5,6,7],k=3输出:[5,6,7,1,2,3,4]解释:向右轮转1步:[7,1,2,3,4,5,6]向右轮转2步:[6,7,1,2,3,4,5]向右轮转3步:[5,6,7,1,2,3,4]本题思路一致https://......
  • php 二维数组排序
    主要通过 array_multisort函数来进行排序<?php//原数组$arr=[["name"=>"小明","age"=>18],["name"=>"小红","age"=>7],["name"=>"小刚","age"=>52],[&......
  • 941. 有效的山脉数组
    给定一个整数数组arr,如果它是有效的山脉数组就返回true,否则返回false。让我们回顾一下,如果arr满足下述条件,那么它是一个山脉数组:arr.length>=3在0<i<arr.length-1条件下,存在i使得:arr[0]<arr[1]<...arr[i-1]<arr[i]arr[i]>arr[i+1]>...>arr[ar......
  • mongodb第八篇:数组操作
    db.students.insertOne({"_id":1,"grades":[80,85,90]})db.students.insertOne({"_id":2,"grades":[88,90,92]})db.students.insertOne({"_id":3,"grades":[85,100,90]})需求1、把_id为1的文档的grades数组中的85改成8......
  • 树状数组
    维护时间复杂度O(nlogn)查询时间复杂度O(logn)优点:好写缺点fw没啥用主要就是用一个叫lowbit的东西来实现用一个树状的东西维护区间和等,其实只要记住修改的时候+=lowbit(x),查询的时候-=lowbit(x)就行了1.板子这个应该都会吧qwq#include<bits/stdc++.h>#defineintlong......