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