724. Find Pivot Index

ss
Feb 20, 2021

--

好難喔哈哈, 明明就知道要在線性時間內完成, 就是不知道要怎麼組織

這邊我們先全部加總的到total

然後遍歷陣列, 若前i個的總和兩倍剛好是 total- nums[i]

代表另一邊一定也是, index就是i

注意首位數的處理, 如果扣除首位數total- nums[0] 是0, 代表另一邊的全部加起來剛好是0, 即可回傳0

class Solution {
public:
int pivotIndex(vector<int>& nums) {
int total = 0;
for(int i = 0; i < nums.size();i++){
total += nums[i];
}
int sum = 0;
if(total -nums[0] == 0) return 0;
for(int i = 1; i < nums.size(); i++){
sum += nums[i-1];
if(2 * sum == total - nums[i]){
return i;
}
}
return -1;
}
};

--

--

ss
ss

No responses yet