ধরুন, আমাদের একটি অ্যারে রয়েছে যাতে বেশ কয়েকটি পূর্ণসংখ্যা রয়েছে। আমরা প্রদত্ত সংখ্যার অ্যারে থেকে সমস্ত সংলগ্ন সাব্যারে খুঁজে বের করি এবং এটিকে অন্য তালিকায় রাখি। এখন, আমরা প্রতিটি সাবয়ারেকে সেই সাবয়ারের সর্বোচ্চ উপাদান দিয়ে প্রতিস্থাপন করি। এছাড়াও একটি সংখ্যা k দেওয়া আছে, এবং আমাদের খুঁজে বের করতে হবে যে কতগুলি সাব্যারে এখন প্রদত্ত সংখ্যার চেয়ে বড়৷
সুতরাং, যদি ইনপুটটি হয় input_array =[5, 6, 7, 8], k =7, তাহলে আউটপুট হবে 4
প্রদত্ত ইনপুট অ্যারে থেকে সংলগ্ন সাবয়ারেগুলি হল:{5}, {6}, {7}, {8}, {5, 6}, {6, 7}, {7, 8}, {5, 6, 7 }, {6, 7, 8}, {5, 6, 7, 8}
যদি আমরা তাদের মধ্যে সর্বাধিক উপাদান সহ সাব্যারেগুলিকে আপডেট করি, তাহলে সাব্যারেগুলি −
হয়ে যায়{5}, {6}, {7}, {8}, {6}, {7}, {8}, {7}, {8}, {8}৷
4টি সেট আছে যেখানে উপাদানটি 7-এর চেয়ে বড়।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- গণনা :=0
- পরপর :=0
- ইনপুট_অ্যারেতে প্রতিটি x এর জন্য, করুন
- যদি x> k, তাহলে
- পরপর :=0
- অন্যথায়,
- ক্রমিক :=ধারাবাহিক + 1
- গণনা :=গণনা + ধারাবাহিক
- যদি x> k, তাহলে
ইনপুট_অ্যারের রিটার্ন সাইজ * ফ্লোর ভ্যালু (ইনপুট_অ্যারের সাইজ + 1) / 2) - গণনা
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(input_array, k): count = 0 consecutive = 0 for x in input_array: if x > k: consecutive = 0 else: consecutive += 1 count += consecutive return len(input_array) * (len(input_array) + 1) // 2 - count print(solve([5, 6, 7, 8], 7))
ইনপুট
[5, 6, 7, 8], 7
আউটপুট
4