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

Python দিয়ে টার্গেট সমান নন-ওভারল্যাপিং সাবঅ্যারে এর সর্বোচ্চ সংখ্যা বের করার প্রোগ্রাম


মান লাগিয়ে, আমাদের একটি অ্যারে nums এবং অন্য একটি মান target আছে। এখন আমাদের সর্বোচ্চ কতগুলো নন-এম্পটি নন-ওভারল্যাপিং সাবঅ্যারে পাওয়া যায় যাতে প্রতিটি সাবঅ্যারের সম ভ্যালু target-এর সমান হয়।

যেমন, ইনপুট nums = [3,2,4,5,2,1,5], target = 6 হলে, আউটপুট হবে 2 কারণ দুটি সাবঅ্যারে [2,4] এবং [1,5] যাদের সম ৬।

এটি সমাধান করতে আমরা নিচের ধাপগুলো অনুসরণ করব:

  • t := ০ ধারণকারী একটি নতুন সেট
  • temp := 0
  • ans:= 0
  • nums-এ থাকা প্রতিটি i জন্য:
    • temp := temp + i
    • prev := temp - target
    • যদি prev t-তে থাকে, তবে:
      • ans := ans + 1
      • t := temp ধারণকারী একটি নতুন সেট
    • অন্যথায়, temp t-তে যোগ করুন
  • ans রিটার্ন করুন

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশন দেখুন:

উদাহরণ

def solve(nums, target):
    t = set([0])
    temp = 0
    ans=0
    for i in nums:
        temp += i
        prev = temp-target
        if prev in t:
            ans += 1
            t = set([temp])
        else:
            t.add(temp)
    return ans
nums = [3,2,4,5,2,1,5]
target = 6
print(solve(nums, target))

ইনপুট

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

আউটপুট

2

  1. Python দিয়ে একই লেবেল ওয়ালা সাব-ট্রি নোড সংখ্যা বের করার প্রোগ্রাম

  2. পাইথন ব্যবহার করে সর্বোচ্চ সম্ভাবনার পথ খুঁজে বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম: map ফাংশন ব্যবহার করে সর্বোচ্চ ১-এর সারি খুঁজে বের করা

  4. পাইথন প্রোগ্রাম: map ফাংশন ব্যবহার করে সর্বোচ্চ ১-এর সারি খুঁজে বের করা (Duplicate)