尋找陣列的中心索引

2021-10-12 16:01:59 字數 1035 閱讀 2485

給定乙個整數型別的陣列 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

解釋:陣列中不存在滿足此條件的中心索引。

說明:

由題可知,陣列array中心索引的左側所有元素相加的和等於右側所有元素相加的和。假設中心索引的座標為k,那麼必然存在以下關係:

左邊元素之和 + array[k] + 右邊元素之和 = 陣列所有元素之和

而中心索引左邊元素之和等於右邊元素之和,公式變更為

2*左邊元素之和 + array[k] = 陣列所有元素之和

利用以上公式,可以很快算出k的位置。對應**如下:

public static int pivotindex(int nums) 

// 計算陣列所有元素之和

int sumtotal = 0;

for (int i = 0; i < nums.length; i++)

int sumleft = 0;

for (int i = 0; i < nums.length; i++)

// 計算中心索引左邊元素之和

sumleft += nums[i];

}return -1;

}

尋找陣列的中心索引

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

尋找陣列的中心索引

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

尋找陣列的中心索引

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