Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Fixed Point ใน Python

สมมติว่าเรามีอาร์เรย์ 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