Skip to main content

1064. Fixed Point

https://leetcode.com/problems/fixed-point/

Python

class Solution:
def fixedPoint(self, arr: List[int]) -> int:
l, r = 0, len(arr)-1

result = -1
while l <= r:
pivot = (l+r) // 2

if arr[pivot] == pivot:
result = pivot
r = pivot - 1
elif arr[pivot] < pivot:
l = pivot + 1
else:
r = pivot - 1
return result

Go

func fixedPoint(arr []int) int {
l, r := 0, len(arr)-1

result := -1
for l <= r {
pivot := (l+r) / 2
if (arr[pivot] == pivot) {
result = pivot
r = pivot - 1
} else if (arr[pivot] < pivot) {
l = pivot + 1
} else {
r = pivot - 1
}
}
return result
}