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

পাইথনে সব টাস্ক সমাপ্তির ন্যূনতম সময় নির্ণয়

nums নামক একটি তালিকা দেওয়া আছে যেখানে প্রতিটি মান একটি টাস্ক সমাপ্তির সময় নির্দেশ করে। আমরা যেকোনো অ-সন্নিহিত টাস্ক বাদ দিতে পারি। সব টাস্ক সমাপ্তির ন্যূনতম মোট সময় বের করতে হবে।

উদাহরণ: nums = [11, 6, 8, 16] হলে আউটপুট ১৪, কারণ প্রথম ও শেষ টাস্ক বাদ দিয়ে 6+8=১৪ হয়।

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

  • n := len(nums)
  • table := n×2 মেট্রিক্স 0 দিয়ে পূরণ
  • table[0][0] = 0, table[0][1] = nums[0]
  • i = 1 থেকে n-1 পর্যন্ত:
    • table[i][0] = table[i-1][1]
    • table[i][1] = min(table[i-1][0], table[i-1][1]) + nums[i]
  • table[n-1] সারির ন্যূনতম মান ফেরত দিন

উদাহরণ কোড

class Solution:
    def solve(self, nums):
        n = len(nums)
        table = [[0] * 2 for _ in range(n)]
        table[0][0] = 0
        table[0][1] = nums[0]
        for i in range(1, n):
            table[i][0] = table[i - 1][1]
            table[i][1] = min(table[i - 1][0], table[i - 1][1]) + nums[i]
        return min(table[n - 1])

ob = Solution()
nums = [11, 6, 8, 16]
print(ob.solve(nums))

ইনপুট

[11, 6, 8, 16]

আউটপুট

14
  1. পাইথনে সব পয়েন্ট কানেক্ট করার ন্যূনতম খরচ বের করার প্রোগ্রাম

  2. Python দিয়ে সব নোডে পৌঁছাতে মিনিমাম ভার্টেক্স বের করার প্রোগ্রাম

  3. পাইথনে ভালো পারফরমারদের ন্যূনতম বেতন বের করার প্রোগ্রাম

  4. পাইথনে দেওয়া সীমাবদ্ধতায় সব কাজ শেষ করার ন্যূনতম সময় বের করা