สมมติว่าเรามีอาร์เรย์ A ของจำนวนเต็มที่ไม่ซ้ำกันเรียงในลำดับเพิ่มขึ้น เราต้องคืนค่าดัชนี i ที่เล็กที่สุดที่ทำให้ A[i] == i คืนค่า -1 หากไม่มี i ที่ตรงเงื่อนไข ดังนั้นถ้าอาร์เรย์คือ [-10,-5,0,3,7] ผลลัพธ์จะเป็น 3 เพราะ A[3] = 3 ผลลัพธ์คือ 3
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนต่อไปนี้ −
- For i ในช่วง 0 ถึงความยาวของ A
- ถ้า i = A[i] ให้คืนค่า i
- คืนค่า -1
ตัวอย่าง (Python)
มาดูการนำไปใช้เพื่อความเข้าใจที่ดีขึ้น −
class Solution(object):
def fixedPoint(self, A):
for i in range(len(A)):
if i == A[i]:
return i
return -1
ob1 = Solution()
print(ob1.fixedPoint([-10, -5, 0, 3, 7]))
อินพุต
[-10,-5,0,3,7]
ผลลัพธ์
3