LeetCode724 寻找数组的中心索引

给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。

我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。

如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。

示例 1:

输入:
nums = [1, 7, 3, 6, 5, 6]
输出: 3
解释:
索引3 (nums[3] = 6) 的左侧数之和(1 + 7 + 3 = 11),与右侧数之和(5 + 6 = 11)相等。
同时, 3 也是第一个符合要求的中心索引。

示例 2:

输入:
nums = [1, 2, 3]
输出: -1
解释:
数组中不存在满足此条件的中心索引。

说明:

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

//章节 - 数组和字符串
//一、数组简介
//1.寻找数组的中心索引
/*
  算法思想:代码注释即可
*/
//算法实现:
class Solution {
public:
    int pivotIndex(vector<int>& nums) {
        int len=nums.size();
        for(int i=0;i<len;++i){ //注意的是,需要从第一个到最后一个,可能存在这种情况,[0,1,1,-1,-1] 返回 0
            int sum1=0,sum2=0;
            for(int j=0;j<i;++j){   //左侧数之和
                sum1+=nums[j];
            }
            for(int k=len-1;k>i;--k){   //右侧数之和
                sum2+=nums[k];
            }
            if(sum1==sum2)
                return i;
        }
        return -1;
    }
};

原文地址:https://www.cnblogs.com/parzulpan/p/10061296.html

时间: 2024-10-09 00:37:56

LeetCode724 寻找数组的中心索引的相关文章

寻找数组的中心索引

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 ind

1068. 寻找数组的中心索引

1068. 寻找数组的中心索引 中文English 给定一个整数数组nums,编写一个返回此数组的“中心索引”的方法. 我们将中心索引定义为:中心索引左边的数字之和等于中心索引右边的数字之和. 如果不存在这样的中心索引,我们应该返回-1. 如果有多个中心索引,则应返回最左侧的那个. 样例 样例1: 输入: nums = [1, 7, 3, 6, 5, 6] 输出: 3 解释: 索引3 (nums[3] = 6)左侧所有数之和等于右侧之和. 并且3是满足条件的第一个索引. 样例2: 输入: num

力扣(LeetCode)寻找数组的中心索引 个人题解

给定一个整数类型的数组 nums,请编写一个能够返回数组"中心索引"的方法. 我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和. 如果数组不存在中心索引,那么我们应该返回 -1.如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个. 示例 1: 输入: nums = [1, 7, 3, 6, 5, 6] 输出: 3 解释: 索引3 (nums[3] = 6) 的左侧数之和(1 + 7 + 3 = 11),与右侧数之和(5 + 6 = 11)

LeetCode第三十五题-寻找数组中对应目标值的首尾索引

Search Insert Position 问题简介:寻找数组中元素与target的关系 注: 1.target小于数组所有元素时返回0 2.target大于数组所有元素时返回数组长度 3.target不包含于数组元素中,但取值区间在其中,返回对应的索引 举例: 1: 输入: [1,3,5,6], 5 输出: 2 2: 输入: [1,3,5,6], 2 输出: 1 3: 输入: [1,3,5,6], 7 输出: 4 4: 输入: [1,3,5,6], 0 输出: 0 解法一:比较简单的解法就是

Java算法分析1—————寻找数组相同元素

算法的两个评测指标:运行时间和内存消耗 要么用时间换空间,要么用空间换时间 寻找数组相同元素测试一: 0~99共100个元素各不相同,新加入一个0~99的元素不明确位置 从101个元素数组中找出与0~99元素中重复的一个 /* 找相同元素 * 0~99共100个元素各不相同 * 从101个元素数组中找出与0~99元素中重复的一个 */ public class Dome01 { public static void main(String[] args) { int arr[] = new in

寻找数组中重复次数最多的数

#include<iostream> #include<map> using namespace std; int helper(const int a[],const int n) { map<int,int> m; for(int i = 0;i<n;i++) m[a[i]]++; map<int,int>::iterator comp = m.begin(); for( map<int,int>::iterator it = comp

【算法31】寻找数组的主元素(Majority Element)

题外话 最近有些网友来信问我博客怎么不更新了,是不是不刷题了,真是惭愧啊,题还是在刷的,不过刷题的频率没以前高了,看完<算法导论>后感觉网上很多讨论的题目其实在导论中都已经有非常好的算法以及数学证明,只是照搬的话好像意义也不是很大,希望找到些有代表性的题目在更新,另外希望能接着前面的<穷举递归和回溯算法终结篇>一系列如动态规划.贪心算法类的终结篇,在梳理自己知识结构的同时也能够帮助读者们更系统的学习算法思想.好了话不多说,进入正题. 问题描述 给定一个数组A[n], 定义数组的主元

js如何移除数组中指定索引的项

js如何移除数组中指定索引的项:在Array对象中有给定的函数可以删除数组中指定的元素,虽然非常好用,但是总感觉看不到摸不着的比较别扭,下面就分享一个自定义的删除数组指定索引值元素的函数,希望给大家一个全新的思路.代码实例如下: var array=[]; array[0]="蚂蚁部落一"; array[1]="蚂蚁部落二"; array[2]="蚂蚁部落三"; array[3]="蚂蚁部落四"; array[4]="

[ALGO-49] 寻找数组中最大值

算法训练 寻找数组中最大值 时间限制:1.0s   内存限制:512.0MB 问题描述 对于给定整数数组a[],寻找其中最大值,并返回下标. 输入格式 整数数组a[],数组元素个数小于1等于100.输出数据分作两行:第一行只有一个数,表示数组元素个数:第二行为数组的各个元素. 输出格式 输出最大值,及其下标 样例输入 3 3 2 1 样例输出 3 0 说明:蓝桥杯官网上的"样例输入"格式不对,我在这里改成了对的格式 import java.util.Scanner; public cl