মান লাগিয়ে, আমাদের একটি অ্যারে arr আছে যেটিতে ইউনিক এলিমেন্ট আছে এবং আরেকটি মান k আছে। এখন একটি গেম বিবেচনা করুন যেখানে আমরা অ্যারের প্রথম দুটি এলিমেন্ট নেই। প্রতিটি টার্নে, arr[0] এবং arr[1] তুলনা করি, এবং বড় মানটি জয়ী হয় এবং পজিশন ০-এ থাকে এবং ছোট মানটি অ্যারের শেষে চলে যায়। এই গেমটি শেষ হবে যখন কোনো মান k বার egymায়নে জয়ী হয়। আমাদের অ্যারে থেকে বিজয়ী বের করতে হবে।
যেমন, ইনপুট arr = [1,5,6,3,4,2], k = 3 হলে, আউটপুট হবে 6 কারণ:
- রাউন্ড ১, arr = [1,5,6,3,4,2], বিজয়ী 5, ৫-এর জয় কাউন্ট ১
- রাউন্ড ২, arr = [5,6,3,4,2,1], বিজয়ী 6, ৬-এর জয় কাউন্ট ১
- রাউন্ড ৩, arr = [6,3,4,2,1,5], বিজয়ী 6, ৬-এর জয় কাউন্ট ২
- রাউন্ড ৪, arr = [6,4,2,1,5,3], বিজয়ী 6, ৬-এর জয় কাউন্ট ৩
তাই বিজয়ী 6 কারণ সে তিনবার জয়ী হয়েছে (k = 3)।
এটি সমাধান করতে আমরা নিচের ধাপগুলো অনুসরণ করব:
- l := arr-এর আকার
- prev := arr[0]
- count := 0
- i = 1 থেকে l - 1 পর্যন্ত:
- যদি prev > arr[i] হয়, তবে count := count + 1
- অন্যথায়, prev := arr[i], count := 1
- যদি count == k হয়, তবে prev রিটার্ন করুন
- prev রিটার্ন করুন
বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশন দেখুন:
উদাহরণ
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