মান লেই একটি অ্যারে A আছে ইন্টিজারদের, এখন প্রতিটি ইন্টিজার A[i] এর জন্য আমরা [-K to K] রেঞ্জ থেকে যেকোনো x বেছে নিতে পারি তারপর x কে A[i]-তে যোগ করব। এই প্রসেসের পর, আমাদের কিছু অ্যারে B পাওয়া যাবে। আমাদের B-এর ম্যাক্সিমাম ভ্যালু এবং মিনিমাম ভ্যালুর মধ্যে সবচেয়ে ছোট পার্থক্য বের করতে হবে।
সেজন্য, যদি ইনপুট হয় A = [0,10], K = 2, তবে আউটপুট হবে ৬, কারণ B = [2,8]
এটি সমাধান করার জন্য আমরা নিচের ধাপগুলো অনুসরণ করব −
- MAX := (A-এর ম্যাক্সিমাম) - K
- MIN := (A-এর মিনিমাম) + K
- difference := MAX - MIN
- যদি difference < 0 হয়, তবে
- 0 রিটার্ন
- অন্যথায় difference রিটার্ন
বেস্টার বোঝার জন্য নিচের ইম্প্লিমেন্টেশন দেখুন −
উদাহরণ
class Solution:
def smallestRangeI(self, A, K):
MAX = max(A) - K
MIN = min(A) + K
difference = MAX - MIN
if difference < 0:
return 0
else:
return difference
ob = Solution()
print(ob.smallestRangeI([0,10], 2))
ইনপুট
[0,10],2
আউটপুট
6