কম্পিউটার

পাইথনে একটি প্রদত্ত পরিসরে উপাদান আপডেট করার প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে যাকে nums বলা হয় এবং ক্রিয়াকলাপের একটি তালিকা রয়েছে। এখানে প্রতিটি অপারেশনের তিনটি ক্ষেত্র রয়েছে [L, R, X], এটি নির্দেশ করে যে আমাদের সূচক L থেকে R (অন্তর্ভুক্ত) সমস্ত উপাদান X দ্বারা বৃদ্ধি করা উচিত। আমাদের সমস্ত ক্রিয়াকলাপ প্রয়োগ করতে হবে এবং চূড়ান্ত তালিকা ফেরত দিতে হবে৷

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[8, 4, 2, -9, 4] অপারেশন =[ [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]।

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

  • ইভেন্ট :=একটি নতুন তালিকা
  • অপারেশনে প্রতিটি (l, r, inc) এর জন্য, করুন
    • ইভেন্টের শেষে (l, inc) সন্নিবেশ করুন
    • ইভেন্টের শেষে সন্নিবেশ করুন (r + 1, -inc)
  • তালিকা ইভেন্টগুলি সাজান
  • inc :=0, ptr :=0
  • আমি 0 থেকে সংখ্যার আকারের মধ্যে,
      করুন
    • যদিও ptr <ঘটনা এবং ইভেন্টের আকার[ptr, 0] i, do
        এর মতো
      • inc :=inc + ঘটনা[ptr, 1]
      • ptr :=ptr + 1
    • সংখ্যা[i] :=সংখ্যা[i] + inc
  • রিটার্ন সংখ্যা

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

উদাহরণ

শ্রেণির সমাধান:def solve(self, nums, operations):events =[] l, r, inc এর জন্য অপারেশনে:events.append((l, inc)) events.append((r + 1, -inc )) events.sort() inc =0 ptr =0 in range(len(nums) এর জন্য):যখন ptr  

ইনপুট

<প্রে>[1,2,3,4,5,6,7,8,9,10], 3

আউটপুট

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

  1. পাইথনে প্রদত্ত ক্রিয়াকলাপ সম্পাদন করে সমস্ত উপাদানকে সমান করার প্রোগ্রাম

  2. পাইথনে রেঞ্জের উপাদানগুলি মুছুন

  3. প্রদত্ত পরিসরে বিজোড় ফ্যাক্টর সহ উপাদানের সংখ্যার জন্য পাইথন প্রোগ্রাম

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