কম্পিউটার

পাইথনে সাজানো অ্যারেতে এলিমেন্টের প্রথম এবং শেষ অবস্থান খুঁজুন


ধরুন আমাদের কাছে পূর্ণসংখ্যা A এর একটি অ্যারে রয়েছে। এটি ঊর্ধ্বক্রম অনুসারে সাজানো হয়েছে, আমাদের একটি নির্দিষ্ট লক্ষ্য মানের শুরু এবং শেষ অবস্থান খুঁজে বের করতে হবে। যখন অ্যারেতে টার্গেট পাওয়া যায় না, [-1, -1] রিটার্ন করুন। সুতরাং যদি অ্যারে হয় [2,2,2,3,4,4,4,4,5,5,6], এবং লক্ষ্য 4 হয়, তাহলে আউটপুট হবে [4,7]

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

  • প্রাথমিকভাবে res :=[-1,-1], সেট কম :=0, উচ্চ :=অ্যারের দৈর্ঘ্য
  • যদিও কম <উচ্চ
    • মধ্য :=নিম্ন + (উচ্চ – নিম্ন)/2
    • যদি A[মিড] টার্গেট হয়, তাহলে
      • উচ্চ :=মধ্য, রেস[0] :=মধ্য এবং রেস[1] :=মধ্য
    • অন্যথায় যখন A[mid]
  • যদি res[0] =-1 হয়, তাহলে রিটার্ন রিটার্ন করুন
  • নিম্ন :=রেস[0] + 1, উচ্চ :=সংখ্যার দৈর্ঘ্য
  • যদিও কম <উচ্চ
    • মধ্য :=নিম্ন + (উচ্চ – নিম্ন)/2
    • যদি A[মিড] টার্গেট হয়, তাহলে
      • নিম্ন :=মধ্য + 1, রেস[1] :=মধ্য
    • অন্যথায় যখন A[mid]
  • রিটার্ন রিটার্ন

উদাহরণ(পাইথন)

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

class Solution(object):
   def searchRange(self, nums, target):
      res = [-1,-1]
      low = 0
      high = len(nums)
      while low<high:
         mid = int(low + (high-low)//2)
         if nums[mid] == target:
            high = mid
            res[0]=mid
            res[1]=mid
         elif nums[mid]<target:
            low = mid+1
         else:
            high = mid
      if res[0] == -1:
         return res
      low = res[0]+1
      high = len(nums)
      while low<high:
         mid = int(low + (high-low)//2)
         if nums[mid] == target:
            low = mid+1
            res[1] = mid
         elif nums[mid] < target:
            low = mid + 1
         else:
            high = mid
      return res
ob1 = Solution()
print(ob1.searchRange([2,2,2,3,3,4,4,4,4,5,5,6], 4))

ইনপুট

[2,2,2,3,4,4,4,4,5,5,6]
4

আউটপুট

[5, 8]

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

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

  3. একটি 2D অ্যারেতে k'th ক্ষুদ্রতম উপাদান খুঁজে পেতে পাইথন প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি তালিকায় সর্বাধিক এবং সর্বনিম্ন উপাদানের অবস্থান খুঁজে পেতে?