领扣LintCode算法问题答案-1068. 寻找数组的中心索引
发布日期:2021-06-30 17:09:43 浏览次数:3 分类:技术文章

本文共 1091 字,大约阅读时间需要 3 分钟。

领扣LintCode算法问题答案-1068. 寻找数组的中心索引

目录

1068. 寻找数组的中心索引

描述

给定一个整数数组nums,编写一个返回此数组的“中心索引”的方法。

我们将中心索引定义为:中心索引左边的数字之和等于中心索引右边的数字之和。

如果不存在这样的中心索引,我们应该返回-1。 如果有多个中心索引,则应返回最左侧的那个。

  • nums的长度范围为[0, 10000].
  • nums[i] 中每个元素都是[-1000, 1000]范围内的整数.

样例 1:

输入: nums = [1, 7, 3, 6, 5, 6]输出: 3解释: 索引3 (nums[3] = 6)左侧所有数之和等于右侧之和。并且3是满足条件的第一个索引。

样例 2:

输入: nums = [1, 2, 3]输出: -1解释: 并没有满足条件的中心索引。

题解

public class Solution {
/** * @param nums: an array * @return: the "pivot" index of this array */ public int pivotIndex(int[] nums) {
// Write your code here if (nums.length < 3) {
return -1; } int index = nums.length - 1; int leftSum = 0; int rightSum = 0; for (int i = 0; i < index; i++) {
leftSum += nums[i]; } while (index > 0 && leftSum != rightSum) {
leftSum -= nums[index - 1]; rightSum += nums[index]; index--; } return leftSum == rightSum ? index : -1; }}

鸣谢

非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。

欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

转载地址:https://le-yi.blog.csdn.net/article/details/108809186 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:领扣LintCode算法问题答案-1071. 词典中最长的单词
下一篇:领扣LintCode算法问题答案-1062. 洪水填充

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月11日 01时21分54秒