制作网页的模板的网站,网站做视频在线观看网址,长治门户网站,济南网页设计师招聘信息找到数组的中间位置 给你一个下标从 0 开始的整数数组 nums #xff0c;请你找到 最左边 的中间位置 middleIndex #xff08;也就是所有可能中间位置下标最小的一个#xff09;。
中间位置 middleIndex 是满足 nums[0] nums[1] … nums[middleIndex-1] nums[middleInd…找到数组的中间位置 给你一个下标从 0 开始的整数数组 nums 请你找到 最左边 的中间位置 middleIndex 也就是所有可能中间位置下标最小的一个。
中间位置 middleIndex 是满足 nums[0] nums[1] … nums[middleIndex-1] nums[middleIndex1] nums[middleIndex2] … nums[nums.length-1] 的数组下标。
如果 middleIndex 0 左边部分的和定义为 0 。类似的如果 middleIndex nums.length - 1 右边部分的和定义为 0 。
请你返回满足上述条件 最左边 的 middleIndex 如果不存在这样的中间位置请你返回 -1 。
示例 1
输入nums [2,3,-1,8,4] 输出3 解释 下标 3 之前的数字和为2 3 -1 4 下标 3 之后的数字和为4 4 示例 2
输入nums [1,-1,4] 输出2 解释 下标 2 之前的数字和为1 -1 0 下标 2 之后的数字和为0 示例 3
输入nums [2,5] 输出-1 解释 不存在符合要求的 middleIndex 。 示例 4
输入nums [1] 输出0 解释 下标 0 之前的数字和为0 下标 0 之后的数字和为0 注意本题与主站 724 题相同https://leetcode-cn.com/problems/find-pivot-index/
class Solution {
public:int findMiddleIndex(vectorint nums) {int total0;int nnums.size();for(int i0;in;i){//total求出前缀和totalnums[i];}int sum0;for(int i0;in;i){//关键在于这一行左边的和为sum当sum 右边total-nums【i】-sum相等时的i为所求下标if(sum total-nums[i]-sum){return i;}sumnums[i];}return -1;}
};