मान लीजिए हमारे पास पूर्णांकों की एक सरणी A है, अब प्रत्येक पूर्णांक A[i] के लिए हम [-K से K] रेंज में कोई भी x चुन सकते हैं फिर x को A[i] में जोड़ सकते हैं। अब इस प्रक्रिया के बाद, हमारे पास कुछ सरणी B है। हमें B के अधिकतम मान और न्यूनतम मान के बीच सबसे छोटा संभव अंतर ढूंढना है।
तो, यदि इनपुट A = [0,10], K = 2 जैसा है, तो आउटपुट 6 होगा, जैसे 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