20210128 尋找陣列的中心索引

2022-06-20 04:15:10 字數 1007 閱讀 5812

給你乙個整數陣列 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

public

int pivotindex(int

nums)

sum +=nums[i];

}return -1;

}

遇到這種型別題先列個草稿 盡量得到公式再進行**編寫

尋找陣列的中心索引

給定乙個整數型別的陣列 nums,請編寫乙個能夠返回陣列 中心索引 的方法。我們是這樣定義陣列中心索引的 陣列中心索引的左側所有元素相加的和等於右側所有元素相加的和。如果陣列不存在中心索引,那麼我們應該返回 1。如果陣列有多個中心索引,那麼我們應該返回最靠近左邊的那乙個。示例 1 輸入 nums 1...

尋找陣列的中心索引

題目 給定乙個整數型別的陣列 nums,請編寫乙個能夠返回陣列 中心索引 的方法。我們是這樣定義陣列中心索引的 陣列中心索引的左側所有元素相加的和等於右側所有元素相加的和。如果陣列不存在中心索引,那麼我們應該返回 1。如果陣列有多個中心索引,那麼我們應該返回最靠近左邊的那乙個。方法 sum 是陣列的...

尋找陣列的中心索引

給定乙個整數型別的陣列 nums,請編寫乙個能夠返回陣列 中心索引 的方法。我們是這樣定義陣列中心索引的 陣列中心索引的左側所有元素相加的和等於右側所有元素相加的和。如果陣列不存在中心索引,那麼我們應該返回 1。如果陣列有多個中心索引,那麼我們應該返回最靠近左邊的那乙個。示例輸入 nums 1,7,...