কম্পিউটার

একটি প্রদত্ত মানের চেয়ে বেশি সেটের সংখ্যা বের করতে পাইথন প্রোগ্রাম


ধরুন, আমাদের একটি অ্যারে রয়েছে যাতে বেশ কয়েকটি পূর্ণসংখ্যা রয়েছে। আমরা প্রদত্ত সংখ্যার অ্যারে থেকে সমস্ত সংলগ্ন সাব্যারে খুঁজে বের করি এবং এটিকে অন্য তালিকায় রাখি। এখন, আমরা প্রতিটি সাবয়ারেকে সেই সাবয়ারের সর্বোচ্চ উপাদান দিয়ে প্রতিস্থাপন করি। এছাড়াও একটি সংখ্যা 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
      • গণনা :=গণনা + ধারাবাহিক

ইনপুট_অ্যারের রিটার্ন সাইজ * ফ্লোর ভ্যালু (ইনপুট_অ্যারের সাইজ + 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

  1. পাইথনের একটি প্রদত্ত বাইনারি ট্রিতে একটি BST-এর বৃহত্তম সমষ্টির মান খুঁজে বের করার প্রোগ্রাম

  2. পাইথনের গোডাউনে কয়টি বাক্স রাখতে হবে তা বের করার কর্মসূচি

  3. পাইথনে প্রদত্ত সংখ্যায় বিট 1-এর সংখ্যা খুঁজে বের করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি প্রদত্ত স্ট্রিং এর বাইনারি রিপ্রেজেন্টেশনে সবচেয়ে বড় ধারাবাহিক 1 এর দৈর্ঘ্য খুঁজে বের করতে।