「每日LeetCode」2021年9月8日
本文最后更新于:2023年3月19日 晚上
Lt1991. 找到数组的中间位置
1991. 找到数组的中间位置
给你一个下标从 0 开始的整数数组 nums ,请你找到 最左边 的中间位置 middleIndex (也就是所有可能中间位置下标最小的一个)。
中间位置 middleIndex 是满足 nums[0] + nums[1] + ... + nums[middleIndex-1] == nums[middleIndex+1] + nums[middleIndex+2] + ... + nums[nums.length-1] 的数组下标。
如果 middleIndex == 0 ,左边部分的和定义为 0 。类似的,如果 middleIndex == nums.length - 1 ,右边部分的和定义为 0 。
请你返回满足上述条件 最左边 的_ _middleIndex ,如果不存在这样的中间位置,请你返回 -1 。
示例 1:
1 | |
示例 2:
1 | |
示例 3:
1 | |
示例 4:
1 | |
提示:
1 <= nums.length <= 100-1000 <= nums[i] <= 1000
思路
前缀和,先遍历一次数组记录数组求和结果。再遍历一次数组,比较当前数之前的和和当前数之后的和(总和减去当前数减去当前数之前的和),如果相同返回下标。
解答
1 | |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!