ধরুন আমাদের কাছে টার্গেট নামে একটি সংখ্যার তালিকা আছে। এখন প্রদত্ত তালিকার সমান দৈর্ঘ্যের একটি তালিকা X বিবেচনা করা যাক এবং X 1s দিয়ে পূর্ণ। আমরা যতবার চাই ততবার নিম্নলিখিত ক্রিয়াকলাপটি সম্পাদন করতে পারি:X-এ যেকোনো সূচক i নিন এবং X[i]কে X-এর বর্তমান যোগফলের সাথে সেট করুন। অবশেষে X কে লক্ষ্যে পরিণত করা যায় কিনা তা পরীক্ষা করুন।
সুতরাং, যদি ইনপুট টার্গেট =[5, 9, 3] এর মত হয়, তাহলে আউটপুটটি True হবে প্রাথমিকভাবে X =[1, 1, 1], তারপর এটিকে মোট যোগফল 3 দিয়ে আপডেট করুন, অ্যারে হবে [1, 1] , 3], বর্তমান যোগফল 5, এটি আপডেট করুন [5, 1, 3], বর্তমান যোগফল 9, তাই তালিকা হবে [5, 9, 3], এবং এটি লক্ষ্য।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:
- যদি সংখ্যার শুধুমাত্র একটি উপাদান থাকে, তাহলে
- সংখ্যার 1 থাকলে সত্য প্রত্যাবর্তন করুন
- q :=সমস্ত সংখ্যার সংখ্যার ঋণাত্মক মান সহ একটি সারি
- q কে গাদা হিসাবে তৈরি করুন
- s :=সংখ্যায় সমস্ত সংখ্যার যোগফল
- ঠিক আছে :=সত্য
- যদিও ঠিক আছে সত্য, কর
- x :=গাদা থেকে উপাদান মুছুন এবং এটিকে অস্বীকার করুন
- d :=s - x
- x2 :=x mod d যদি d> 1 অন্যথায় 1
- s :=s + x2 - x
- ঠিক আছে :=x x2 এর মত নয়
- x :=x2
- -x ঢোকান q তে
- প্রত্যাবর্তন সত্য যখন q এর সমস্ত উপাদান -1 হয়
আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:
উদাহরণ
শ্রেণির সমাধান:def solve(self, nums):if len(nums) ==1:রিটার্ন nums ==[1] heapq import থেকে heapify, heappop, heappush q =[-x এর জন্য x সংখ্যায়] heapify( q) s =যোগফল(সংখ্যা) ঠিক আছে =সত্য যখন ঠিক আছে:x =-heappop(q) d =s - x x2 =x % d যদি d> 1 অন্য 1 s +=x2 - x ঠিক =x !=x2 x =x2 heappush(q, -x) সবগুলি ফেরত দিনইনপুট
[5, 9, 3]আউটপুট
সত্য