class Solution {
public:
int pivotIndex(vector<int>& nums) {
int total = 0;
for (int num : nums) {
total += num;
}
int leftSum = 0;
for (int i = 0; i < nums.size(); i++) {
int rightSum = total - leftSum - nums[i];
if (leftSum == rightSum) {
return i;
}
leftSum += nums[i];
}
return -1;
}
};
rightSum 이 total - leftSum - nums[i]; 라는 사실이 중요하다
[1,7,3,6,5,6]
#1
leftSum = 0 , num[0] = 1, rightSum = total - leftSum - num[0] = num[1] + num[2] + num[3] + num[4] + num[5];
#2
[1] [7] [3,6,5,6]
leftSum = 0 + num[0], num[1] = 7, rightSum = total - leftSum - num[1] = num[2] + num[3] + num[4] + num[5];
'알고리즘 > 리트코드' 카테고리의 다른 글
| 392. Is Subsequence (0) | 2023.03.14 |
|---|---|
| 1480. Running Sum of 1d Array (0) | 2023.03.08 |
| 409. Longest Palindrome (0) | 2023.02.28 |
| 231.Power of Two (0) | 2023.02.28 |
| 122. Best Time to Buy and Sell Stock II (0) | 2021.09.06 |