LeetCode 724 尋找陣列的中心索引

2021-10-09 07:45:03 字數 1194 閱讀 5862

給定乙個整數型別的陣列 nums,請編寫乙個能夠返回陣列 「中心索引」 的方法。

我們是這樣定義陣列 中心索引 的:陣列中心索引的左側所有元素相加的和等於右側所有元素相加的和。

如果陣列不存在中心索引,那麼我們應該返回 -1。如果陣列有多個中心索引,那麼我們應該返回最靠近左邊的那乙個。

注意:這道題中對陣列兩端也算在索引的範圍內

本來的思路是,利用雙指標,從陣列兩端開始向中間靠攏,這樣我以為當兩個指標相遇的時候就是產生中心索引的時候,但是欠缺考慮,沒有充分考慮到負數的情況,導致在後面的測試例子中不通過。所以這種思路我覺得是費力不討好的,果斷換一種思路。

int

pivotindex

(int

* nums,

int numssize)

left_sum = nums[0]

; right_sum = nums[numssize-1]

;for

( i=

0,j=numssize-

1; i

)else

}else

else}}

if( left_sum==right_sum )

else

}

先累加,求出所有的陣列元素之和,然後開始遍歷陣列,用左邊元素的和與目標值比較,目標值就是當前中心索引下左右兩邊的元素和的一半,這種情況下的索引是滿足條件的,而且是靠近左邊的索引。

要注意的是:

int

pivotindex

(int

* nums,

int numssize)

for( i=

0,sum=

0; i

)for

( i=

0; i

) left_sum +

= nums[i]

;//完了之後i自增,到時候直接返回中心索引

i++;}

return-1

;}

執行結果:

Leetcode 724 尋找陣列的中心索引

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

Leetcode 724 尋找陣列的中心索引

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

Leetcode 724 尋找陣列的中心索引

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