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

পাইথনে দিয়ে गये রেঞ্জে এলিমেন্ট আপডেট করার প্রোগ্রাম


মান ল করুন nums নামের একটি সংখ্যার তালিকা এবং operations নামের একটি অপারেশন তালিকা। এখানে প্রতিটি অপারেশনের তিনটি ফিল্ড [L, R, X], যা নির্দেশ করে L থেকে R ইনডেক্স পর্যন্ত (ইনক্লুসিভ) সব এলিমেন্ট X দিয়ে বাড়াতে হবে। সব অপারেশন প্রয়োগ করে ফাইনাল তালিকা ফেরত দিতে হবে।

যদি ইনপুট হয় nums = [8, 4, 2, -9, 4] operations = [[0, 0, 3], [1, 3, 2], [2, 3, 5]], তবে আউটপুট হবে [11, 6, 9, -2, 4], কারণ প্রাথমিক তালিকা ছিল [8, 4, 2, -9, 4]。

  • প্রথম অপারেশন [0, 0, 3] করলে তালিকা হবে [11, 4, 2, -9, 4]।
  • দ্বিতীয় অপারেশন [1, 3, 2] করলে তালিকা হবে [11, 6, 4, -7, 4]।
  • তৃতীয় অপারেশন [2, 3, 5] করলে তালিকা হবে [11, 6, 9, -2, 4]।

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

  • events := একটি নতুন তালিকা
  • প্রতিটি (l, r, inc) operations-এ জন্য:
    • (l, inc) events-এ যোগ করুন
    • (r + 1, -inc) events-এ যোগ করুন
  • events তালিকাটি সাজান
  • inc := 0, ptr := 0
  • i কে ০ থেকে nums-এর আকার পর্যন্ত লুপ চালান:
    • যখন ptr < events-এর আকার এবং events[ptr][0] == i:
      • inc := inc + events[ptr][1]
      • ptr := ptr + 1
    • nums[i] := nums[i] + inc
  • nums ফেরত দিন

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

উদাহরণ

class Solution:    def solve(self, nums, operations):       events = []       for l, r, inc in operations:          events.append((l, inc))          events.append((r + 1, -inc))       events.sort()       inc = 0       ptr = 0       for i in range(len(nums)):          while ptr < len(events) and events[ptr][0] == i:             inc += events[ptr][1]             ptr += 1          nums[i] += inc       return nums ob = Solution() nums = [8, 4, 2, -9, 4] operations = [ [0, 0, 3], [1, 3, 2], [2, 3, 5] ] print(ob.solve(nums, operations))

ইনপুট

[1,2,3,4,5,6,7,8,9,10], 3

আউটপুট

[11, 6, 9, -2, 4]

  1. পাইথনে দেওয়া অপারেশন দিয়ে সব উপাদান সমান করার ন্যূনতম অপারেশন সংখ্যা খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে রেঞ্জের মধ্যে এলিমেন্ট ডিলিট করুন

  3. দেওয়া রেঞ্জে অদ্দ ফ্যাক্টরের সংখ্যা বের করার পাইথন প্রোগ্রাম

  4. পাইথনে পূর্ণসংখ্যা অ্যারে থেকে স্বতন্ত্র (distinct) উপাদান প্রিন্ট করার প্রোগ্রাম