找到数组的中间位置
Submit solution
Points:
300
Time limit:
1.0s
Memory limit:
4M
Author:
Problem type
Allowed languages
C, C++
leetcode 1991
给你一个下标从 0 开始的整数数组 nums。请你找出一个满足下述条件的下标 pivot: 将 nums 分成两部分:nums[0] 到 nums[pivot - 1] 的所有元素之和,和 nums[pivot + 1] 到 nums[n - 1] 的所有元素之和 相等。
第一行输入一个整数n,表示数组有n个元素
第二行输入n个整数,空格隔开。
输出 满足条件的 pivot 数组下标
换句话说:
sum(nums[0..pivot-1]) == sum(nums[pivot+1..n-1])
返回 最左边的那个 pivot 下标。如果不存在这样的下标,返回 -1。
示例 1:
输入:
6
1 7 3 6 5 6
输出:
3
解释:
nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11
nums[4] + nums[5] = 5 + 6 = 11
示例 2:
输入:
3
1 2 3
输出:
-1
解释:
不存在满足条件的下标 pivot。
示例 3:
输入:
3
2 1 -1
输出:
0
解释:
nums[1] + nums[2] = 1 + (-1) = 0
左边没有元素,所以视为和为 0。
数据制约
\(1 \le nums.length \le 10^5\)
\(-1000 \le nums[i] \le 1000\)
Comments