題目:
給你一個整數數組 nums ,請計算數組的 中心下標 。
數組 中心下標 是數組的一個下標,其左側所有元素相加的和等于右側所有元素相加的和。
如果中心下標位于數組最左端,那么左側數之和視為 0 ,因為在下標的左側不存在元素。這一點對于中心下標位于數組最右端同樣適用。
如果數組有多個中心下標,應該返回 最靠近左邊 的那一個。如果數組不存在中心下標,返回 -1 。
示例 1:
輸入:nums = [1, 7, 3, 6, 5, 6]
輸出:3
解釋:
中心下標是 3 。
左側數之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,
右側數之和 sum = nums[4] + nums[5] = 5 + 6 = 11 ,二者相等。
示例 2:
輸入:nums = [1, 2, 3]
輸出:-1
解釋:
數組中不存在滿足此條件的中心下標。
示例 3:
輸入:nums = [2, 1, -1]
輸出:0
解釋:
中心下標是 0 。
左側數之和 sum = 0 ,(下標 0 左側不存在元素),
右側數之和 sum = nums[1] + nums[2] = 1 + -1 = 0 。
提示:
1 <= nums.length <= 104
-1000 <= nums[i] <= 1000
思路:
閱讀理解題
代碼:
class Solution {// tmp == sum - tmp - num[i]public int pivotIndex(int[] nums) {int sum = 0;for(int num : nums){sum += num;}int tmp = 0;for(int i = 0; i < nums.length; i++){if(2 * tmp + nums[i] == sum){return i;}tmp += nums[i];}return -1;}
}