Leetcode Note: Go - Find Pivot Index

Find Pivot Index - LeetCode
https://leetcode.com/problems/find-pivot-index/

  • Go 言語で取り組んだメモ

所感

  • int 配列 num から pivot index を計算する
  • pivot index は、インデックスの左側にある全ての数値の合計が、右側にある数値の合計と等しい index
  • pivot index が存在しない場合は -1 を return する

回答

Find Pivot Index - LeetCode
https://leetcode.com/problems/find-pivot-index/solution/

6 MB, less than 100.00% of Go online submissions for Find Pivot Index. - LeetCode Discuss
https://leetcode.com/problems/find-pivot-index/discuss/912701/6-MB-less-than-100.00-of-Go-online-submissions-for-Find-Pivot-Index.

// calculate sum
// loop over array 
// left + this + right = sum, using this calulate if right == left
func pivotIndex(nums []int) int {
    if len(nums) <= 1 {
        return len(nums)-1
    }
    
    sum:=0
    left:=nums[0]
    
    for i:=0; i<len(nums); i++ {
        sum = sum + nums[i]
    }
    
    //edge case for all 0
    if left == sum {
        return 0
    }
    
    for i:=1; i<len(nums); i++ {
        right:=sum-left-nums[i]
        if right == left {
            return i
        }
        left = left + nums[i]
    }
    return -1
}