# CSPT 19 Lecture 5
## [Plus One](https://leetcode.com/problems/plus-one/)
```
class Solution:
"""
Understand
[1,2,3] --> [1,2,4]
[9,9,9] --> [1,0,0,0]
[0] --> [1]
Plan
Iterate through list in reverse and keep track of carry digit
Add carry to other digits in the number if needed
After iterating through all digits, if there's still a carry then
add it to the beginning of the list
"""
"""
digits = [1,0,0,0]
carry = 1
i = -1
currSum = 10
carry = 1
Runtime: O(n)
Space: O(1)
"""
def plusOne(self, digits: List[int]) -> List[int]:
carry = 1 #since we're adding 1
i = len(digits) - 1
while i >= 0:
currSum = digits[i] + carry
carry = int(currSum / 10)
digits[i] = currSum % 10
i -= 1
if carry > 0:
digits.insert(0, carry)
return digits
```
## [Pivot Index](https://leetcode.com/problems/find-pivot-index)
```
class Solution:
"""
Understand
[1,7,3,(6),5,6] --> 3
[1,2,3] --> -1
[] --> -1
Plan
[1,7,3,6,5,6]
rightSum = 11
leftSum = 11
Runtime: O(n)
Space: O(1)
Keep track of left sum and right sum
Add previous element to the left sum
Subtract current element from right sum
If both are equal, then you're at the pivot element
Runtime:
"""
def pivotIndex(self, nums: List[int]) -> int:
rightSum = sum(nums) # n
leftSum = 0
for i, num in enumerate(nums): # n
if i - 1 >= 0:
leftSum += nums[i - 1]
rightSum -= num
if leftSum == rightSum:
return i
return -1
```