알고리즘/리트코드

724. Find Pivot Index

lidar_expert 2023. 3. 8. 13:54
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];