একটি nums অ্যারে দেওয়া আছে। এক অপারেশনে আমরা যেকোনো একটি উপাদান ১ বাড়াতে পারি। nums কে স্ট্রিক্টলি ইনক্রিজিং (প্রতিটি পরবর্তী উপাদান পূর্ববর্তীটির চেয়ে বড়) করার জন্য ন্যূনতম কত অপারেশন লাগবে সেটি বের করতে হবে।
যেমন, nums = [8,5,7] হলে আউটপুট ৭। কারণ: [8,6,7] -> [8,7,7] -> [8,8,7] -> [8,9,7] -> [8,9,8] -> [8,9,9] -> [8,9,10]।
সমাধানের ধাপসমূহ
- count := 0
- i = 0 থেকে nums-এর আকার - 2 পর্যন্ত লুপ:
- যদি nums[i+1] <= nums[i] হয়, তবে count += nums[i] - nums[i+1] + 1 এবং nums[i+1] += nums[i] - nums[i+1] + 1
- count ফেরত দিন।
উদাহরণ
def solve(nums):
count = 0
for i in range(len(nums) - 1):
if nums[i+1] <= nums[i]:
count += nums[i] - nums[i+1] + 1
nums[i+1] += nums[i] - nums[i+1] + 1
return count
nums = [8,5,7]
print(solve(nums))
ইনপুট
[8,5,7]
আউটপুট
7