কম্পিউটার

পাইথনে সংখ্যার তালিকা থেকে স্থানীয় শীর্ষ উপাদান সূচক খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে যার দৈর্ঘ্য কমপক্ষে 2। আমাদের তালিকার প্রতিটি শিখরের সূচক খুঁজে বের করতে হবে। তালিকাটি ক্রমবর্ধমান ক্রমে সাজানো হয়েছে। একটি সূচক i একটি সর্বোচ্চ যখন −

  • nums[i]> nums[i + 1] when i =0

  • nums[i]> nums[i - 1] when i =n - 1

  • সংখ্যা[i - 1] nums[i + 1] অন্য

সুতরাং, যদি ইনপুটটি nums =[5, 6, 7, 6, 9] এর মত হয়, তাহলে আউটপুট হবে [2, 4], কারণ সূচক 2-এর উপাদান হল 7 যা দুটি প্রতিবেশীর চেয়ে বড় এবং আইটেম ইনডেক্স 4 হল 9, এটি তার বাম আইটেম থেকে বড়৷

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • উত্তর :=একটি নতুন তালিকা

  • n :=সংখ্যার আকার

  • যদি n 1 এর মত হয়, তাহলে

    • উত্তর ফেরত দিন

  • প্রতিটি সূচক i এবং সংখ্যার সংখ্যার জন্য, করুন

    • যদি i> 0 এবং i

      • যদি nums[i - 1] nums[i + 1] হয়, তাহলে

        • উত্তরের শেষে i ঢোকান

      • যদি আমি 0 এর সমান হয়, তাহলে

        • যদি num> nums[i + 1] হয়, তাহলে

          • উত্তরের শেষে i ঢোকান

      • যদি আমি n - 1 এর মত হয়, তাহলে

        • যদি num> nums[i - 1] হয়, তাহলে

          • উত্তরের শেষে i ঢোকান

  • উত্তর ফেরত দিন

উদাহরণ

আরও ভালোভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি

def solve(nums):
   ans = []
   n = len(nums)

   if n == 1:
      return ans

   for i, num in enumerate(nums):
      if i > 0 and i < n - 1:
         if nums[i - 1] < num > nums[i + 1]:
            ans.append(i)

      if i == 0:
         if num > nums[i + 1]:
            ans.append(i)

      if i == n - 1:
         if num > nums[i - 1]:
            ans.append(i)

   return ans

nums = [5, 6, 7, 6, 9]
print(solve(nums))

ইনপুট

[5, 6, 7, 6, 9]

আউটপুট

[2, 4]

  1. পাইথনে 1 থেকে N পর্যন্ত সমস্ত অনুপস্থিত সংখ্যা খুঁজে বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রাম একটি তালিকা থেকে ইনপুট স্ট্রিং এর সব কাছাকাছি মিল খুঁজে পেতে

  3. একটি তালিকা থেকে N বৃহত্তম উপাদান খুঁজে পেতে পাইথন প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি তালিকা থেকে ডুপ্লিকেট উপাদান অপসারণ?