ধরুন আমাদের কাছে ইতিবাচক মান সহ টার্গেট নামক একটি অ্যারে আছে। এখন সমস্ত শূন্য সহ একই আকারের একটি অ্যারের প্রারম্ভিক বিবেচনা করুন। আমরা যদি এই অপারেশনটি করি তাহলে প্রাথমিক থেকে একটি টার্গেট অ্যারে তৈরি করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক ক্রিয়াকলাপ খুঁজে বের করতে হবে:(প্রাথমিক থেকে যেকোনো সাবয়ারে নির্বাচন করুন এবং প্রতিটি মান একটি করে বৃদ্ধি করুন।)
সুতরাং, যদি ইনপুট টার্গেট =[2,3,4,3,2] এর মত হয়, তাহলে আউটপুট হবে 4 কারণ প্রাথমিকভাবে অ্যারে ছিল [0,0,0,0,0] প্রথম পাস সূচক 0 থেকে সাবয়ারে নির্বাচন করুন 4 এবং এটিকে 1 দ্বারা বাড়ান, তাই অ্যারে হবে [1,1,1,1,1], তারপর আবার এটিকে [2,2,2,2,2] করতে সূচক 0 থেকে 4 থেকে নির্বাচন করুন, তারপর থেকে উপাদানগুলি নির্বাচন করুন সূচী 1 থেকে 3 এবং বৃদ্ধি, তাই অ্যারে হবে [2,3,3,3,2], এবং সবশেষে সূচী 2 নির্বাচন করুন এবং অ্যারে তৈরি করুন [2,3,4,3,2] যা লক্ষ্যের সমান।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
prev_num :=0
-
ধাপ :=0
-
লক্ষ্যে প্রতিটি ভ্যালের জন্য, করুন
-
ধাপ :=ধাপ + val - prev_num যদি val> prev_num অন্যথায় 0
-
prev_num :=val
-
-
প্রত্যাবর্তনের পদক্ষেপগুলি
উদাহরণ
আসুন আরও ভালভাবে বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখি
def solve(target): prev_num = 0 steps = 0 for val in target: steps += val-prev_num if val > prev_num else 0 prev_num = val return steps target = [2,3,4,3,2] print(solve(target))
ইনপুট
[2,3,4,3,2]
আউটপুট
4