मान लीजिए कि हमारे पास ए और दूसरी संख्या के नामक संख्याओं की एक सूची है, हमें संभावित तत्वों का एक नया सेट बनाना है {ए [के], ए [ए [के]], ए [ए [ए [के]]], .. . } इंडेक्स से बाहर होने से पहले रुकना। हमें इस सेट के आकार का पता लगाना है, अन्यथा -1 जब कोई चक्र हो।
इसलिए, यदि इनपुट ए =[1,2,3,4,5,6,7], के =1 जैसा है, तो आउटपुट 6 होगा क्योंकि ए [1] =2, ए [2] =3, ए [3] =4, ए [4] =5, ए [5] =6, ए [6] =7, तो सेट {2,3,4,5,6,7} है, सेट का आकार है 6.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- देखा:=एक नया सेट
- जबकि k
- यदि A[k] दिखाई दे, तो
- वापसी -1
- देखे में A[k] डालें
- k:=ए[के]
- यदि A[k] दिखाई दे, तो
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, A, k): seen = set() while k < len(A): if A[k] in seen: return -1 seen.add(A[k]) k = A[k] return len(seen) ob = Solution() print(ob.solve([1,2,3,4,5,6,7], 1))
इनपुट
[1,2,3,4,5,6,7], 1
आउटपुट
6