Given an array of integers nums
, calculate the pivot index of this array.
The pivot index is the index where the sum of all the numbers strictly to the left of the index is equal to the sum of all the numbers strictly to the index’s right.
If the index is on the left edge of the array, then the left sum is 0
because there are no elements to the left. This also applies to the right edge of the array.
Return the leftmost pivot index. If no such index exists, return -1
.
Example 1:
Input: nums = [1,7,3,6,5,6] Output: 3 Explanation: The pivot index is 3. Left sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 Right sum = nums[4] + nums[5] = 5 + 6 = 11
Example 2:
Input: nums = [1,2,3] Output: -1 Explanation: There is no index that satisfies the conditions in the problem statement.
Example 3:
Input: nums = [2,1,-1] Output: 0 Explanation: The pivot index is 0. Left sum = 0 (no elements to the left of index 0) Right sum = nums[1] + nums[2] = 1 + -1 = 0
Constraints:
1 <= nums.length <= 104
-1000 <= nums[i] <= 1000
class Solution {
public int pivotIndex(int[] nums) {
int rsum = 0;
for(int ele : nums ){
rsum += ele ;
}
int lsum = 0 ;
for(int i=0;i
class Solution {
public:
int pivotIndex(vector& nums) {
// Calculate the total sum of all elements in the array
int sum = 0;
for (int i = 0; i < nums.size(); i++) {
sum += nums[i];
}
// Initialize variables to store the sum on the left and right of the current index
int sum1 = sum; // Initially set to the total sum
int sum2 = 0; // Initially set to 0
// Iterate through the array to find the pivot index
for (int i = 0; i < nums.size(); i++) {
// Update sum1 by subtracting the current element
sum1 -= nums[i];
// Check if the sum on the left (sum1) is equal to the sum on the right (sum2)
if (sum1 == sum2) {
// If true, return the current index as the pivot index
return i;
}
// Update sum2 by adding the current element
sum2 += nums[i];
}
// If no pivot index is found, return -1
return -1;
}
};
In this program, we have to find the pivot index in an array of integers (‘nums’), where the pivot index is the index such that the sum of elements to the left is equal to the sum of elements to the right.
Let’s see the step-by-step approach towards the solution:
The ‘For’ loop is used here to iterate the code through the array. We will subtract the current element from ‘sum1’ and check it ‘sum1’ is equal to ‘sum2’ or not.
Sum1 -= nums[ i ]
Summary:- This solution tackles the problem of finding the pivot index in an array by maintaining two running sums. It’s a concise and efficient approach with a linear time complexity.
Office:- 660, Sector 14A, Vasundhara, Ghaziabad, Uttar Pradesh - 201012, India