給你乙個整數陣列 nums,請編寫乙個能夠返回陣列 「中心索引」 的方法。陣列 中心索引 是陣列的乙個索引,其左側所有元素相加的和等於右側所有元素相加的和。
如果陣列不存在中心索引,返回 -1。如果陣列有多個中心索引,應該返回最靠近左邊的那乙個。
注意:中心索引可能出現在陣列的兩端。
示例 1:
輸入:nums = [1, 7, 3, 6, 5, 6]
輸出:3解釋:
索引 3 (nums[3] = 6) 的左側數之和 (1 + 7 + 3 = 11),與右側數之和 (5 + 6 = 11) 相等。
同時, 3也是第乙個符合要求的中心索引。
示例 2:
輸入:nums = [1, 2, 3]
輸出:-1解釋:
陣列中不存在滿足此條件的中心索引。
示例 3:
輸入:nums = [2, 1, -1]
輸出:0解釋:
索引 0 左側不存在元素,視作和為 0 ;右側數之和為 1 + (-1) = 0,二者相等。
示例 4:
輸入:nums = [0, 0, 0, 0, 1]
輸出:4解釋:
索引 4 左側數之和為 0 ;右側不存在元素,視作和為 0,二者相等。
public
int pivotindex(int
nums)
思路:分別從左至右遍歷和與從右至左遍歷和對比 若左邊大則右邊加1個數對比 依次判斷是否相等
這思路太傻了 看官方解答的另乙個思路
官方:遍歷所有元素 定義左邊和sum 總和total 那麼sum=total−nums[i]−sum => 2×sum+nums[i]=total
publicint pivotindex(int
nums)
sum +=nums[i];
}return -1;
}
遇到這種型別題先列個草稿 盡量得到公式再進行**編寫
尋找陣列的中心索引
給定乙個整數型別的陣列 nums,請編寫乙個能夠返回陣列 中心索引 的方法。我們是這樣定義陣列中心索引的 陣列中心索引的左側所有元素相加的和等於右側所有元素相加的和。如果陣列不存在中心索引,那麼我們應該返回 1。如果陣列有多個中心索引,那麼我們應該返回最靠近左邊的那乙個。示例 1 輸入 nums 1...
尋找陣列的中心索引
題目 給定乙個整數型別的陣列 nums,請編寫乙個能夠返回陣列 中心索引 的方法。我們是這樣定義陣列中心索引的 陣列中心索引的左側所有元素相加的和等於右側所有元素相加的和。如果陣列不存在中心索引,那麼我們應該返回 1。如果陣列有多個中心索引,那麼我們應該返回最靠近左邊的那乙個。方法 sum 是陣列的...
尋找陣列的中心索引
給定乙個整數型別的陣列 nums,請編寫乙個能夠返回陣列 中心索引 的方法。我們是這樣定義陣列中心索引的 陣列中心索引的左側所有元素相加的和等於右側所有元素相加的和。如果陣列不存在中心索引,那麼我們應該返回 1。如果陣列有多個中心索引,那麼我們應該返回最靠近左邊的那乙個。示例輸入 nums 1,7,...