मान लीजिए कि हमारे पास दो सरणियाँ हैं nums1 और nums2 और दूसरा मान k। हमें यह जांचना है कि nums1 से किसी एक तत्व को निम्नलिखित तरीके से संशोधित करके दोनों सरणियों को बराबर बनाया जा सकता है (केवल एक बार):हम [-k, k] श्रेणी से किसी भी मान को nums1 के किसी भी तत्व में जोड़ सकते हैं। पी>
इसलिए, यदि इनपुट nums1 =[5,7,11] nums2 =[5,5,11] k =8 जैसा है, तो आउटपुट सही होगा क्योंकि हम -2 जोड़ सकते हैं (रेंज में [-8,8] ) nums1[1] के साथ इसे 5 बनाने के लिए यह nums2 के समान होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- संख्या 1 और अंक 2 सूची क्रमबद्ध करें
- अस्थायी:=गलत
- आईडीएक्स:=-1
- मैं के लिए 0 से लेकर nums1-1 के आकार के बीच में
- यदि nums1[i], nums2[i] के समान नहीं है, तो
- अगर टेम्परेचर सही है, तो
- झूठी वापसी
- अस्थायी:=सच
- आईडीएक्स:=मैं
- अगर टेम्परेचर सही है, तो
- यदि nums1[i], nums2[i] के समान नहीं है, तो
- यदि idx -1 है या |nums1[idx]-nums2[idx]| <=कश्मीर, फिर
- सही लौटें
- झूठी वापसी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण कोड
def solve(nums1, nums2, k): nums1.sort() nums2.sort() temp = False idx = -1 for i in range(len(nums1)): if nums1[i] != nums2[i]: if temp: return False temp = True idx = i if idx == -1 or abs(nums1[idx]-nums2[idx]) <= k: return True return False nums1 = [5,7,11] nums2 = [5,5,11] k = 8 print(solve(nums1, nums2, k))
इनपुट
[5,7,11], [5,5,11], 8
आउटपुट
True