parameters: (self, A)
return_statement: return left if A[left] == left else -1
docstring: :type A: List[int]
          :rtype: int
docstring_summary: :type A: List[int]
          :rtype: int
docstring_tokens: : type A : List [ int ] : rtype : int
function: def fixedPoint(self, A):
          """
          :type A: List[int]
          :rtype: int
          """
          left, right = 0, len(A)-1
          while left <= right:
              mid = left + (right-left)//2
              if A[mid] >= mid:
                  right = mid-1
              else:
                  left = mid+1
          return left if A[left] == left else -1
function_tokens: def fixedPoint ( self , A ) : left , right = 0 , len ( A ) - 1 while left <= right : mid = left + ( right - left ) // 2 if A [ mid ] >= mid : right = mid - 1 else : left = mid + 1 return left if A [ left ] == left else - 1