কম্পিউটার টিউটোরিয়াল

পাইথনে আকার k-এর সাবলিস্টের সর্বোচ্চ মানগুলো বের করা

একটি তালিকা nums এবং একটি মান k দেওয়া আছে। আকার k-এর প্রতিটি সাবলিস্টের সর্বোচ্চ মান বের করতে হবে।

উদাহরণ: nums = [12, 7, 3, 9, 10, 9], k = 3 হলে আউটপুট [12, 9, 10, 10]।

সমাধানের ধাপসমূহ

  • যদি k > len(nums) হয় তবে খালি তালিকা ফেরত দিন
  • প্রথম k উপাদানের মধ্যে সর্বোচ্চ বের করুন
  • স্লাইডিং উইন্ডো ব্যবহার করে প্রতিটি উইন্ডোর সর্বোচ্চ আপডেট করুন
  • পয়েন্টার ট্র্যাক করে O(n) সময়ে সমাধান করুন

উদাহরণ কোড

class Solution:
    def solve(self, nums, k):
        if k > len(nums):
            return []
        res = []
        temp = nums[0]
        point = 0
        for i in range(k):
            if nums[i] > temp:
                temp = nums[i]
                point = i
        res.append(temp)
        for i in range(k, len(nums)):
            if nums[i] < temp and (i - point) < k:
                temp = nums[point]
            elif nums[i] < temp and (i - point) >= k:
                point = i - k + 1
                for j in range(i - k + 1, i + 1):
                    if nums[j] > nums[point]:
                        point = j
                temp = nums[point]
            else:
                temp = nums[i]
                point = i
            res.append(temp)
        return res

ob = Solution()
nums = [12, 7, 3, 9, 10, 9]
k = 3
print(ob.solve(nums, k))

ইনপুট

[12, 7, 3, 9, 10, 9], 3

আউটপুট

[12, 9, 10, 10]
  1. পাইথনে সর্বোচ্চ ক্রমবর্ধমান সাবসিকোয়েন্সের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রাম ডিকশনারিতে ৩টি সর্বোচ্চ ভ্যালু বের করা

  3. পাইথনে ডিকশনারি থেকে সর্বোচ্চ ৩টি ভ্যালু বের করা

  4. পাইথনে অ্যারে থেকে সর্বোচ্চ এলিমেন্ট বের করা