मान लीजिए कि हमारे पास एआर नामक एक सरणी है, इसमें अद्वितीय तत्व हैं और हमारे पास एक और मूल्य भी है। अब एक खेल पर विचार करें जहां हम सरणी के पहले दो तत्वों को लेते हैं। प्रत्येक मोड़ में, हम arr[0] की arr[1] से तुलना करते हैं, और बड़ा मान जीतता है और स्थिति 0 पर बना रहता है और छोटा मान सरणी के अंत में चला जाता है। यह गेम तब समाप्त होगा जब कोई मान k लगातार राउंड जीतता है। हमें सरणी से विजेता को ढूंढना है।
इसलिए, यदि इनपुट arr =[1,5,6,3,4,2], और k =3 जैसा है, तो आउटपुट 6 होगा क्योंकि
-
राउंड 1, एआर =[1,5,6,3,4,2], विजेता 5, 5 के लिए जीत की संख्या 1 है
-
राउंड 2, एआर =[5,6,3,4,2,1], विजेता 6, 6 के लिए जीत की संख्या 1 है
-
राउंड 3, एआर =[6,3,4,2,1,5], विजेता 6, 6 के लिए जीत की संख्या 2 है
-
राउंड 3, एआर =[6,4,2,1,5,3], विजेता 6, 6 के लिए जीत की संख्या 3 है
तो विजेता 6 है क्योंकि यह तीन बार जीता (k =3)
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
एल :=गिरफ्तारी का आकार
-
पिछला :=गिरफ्तार [0]
-
गिनती :=0
-
मैं के लिए 1 से एल -1 की सीमा में, करो
-
अगर पिछला> गिरफ्तारी [i], तो
-
गिनती :=गिनती + 1
-
-
अन्यथा,
-
पिछला :=गिरफ्तारी[i]
-
गिनती :=1
-
-
अगर गिनती k के समान है, तो
-
पिछली वापसी
-
-
-
पिछली वापसी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def solve(arr, k): l = len(arr) prev = arr[0] count = 0 for i in range(1, l): if prev > arr[i]: count+=1 else: prev = arr[i] count = 1 if count == k: return prev return prev arr = [1,5,6,3,4,2] k = 3 print(solve(arr, k))
इनपुट
[1,5,6,3,4,2], 3
आउटपुट
6