मान लीजिए कि हमारे पास nums नामक एक सरणी है। हमारे पास एक श्रेणी [x, y] को परिभाषित करने वाली दो संख्याएँ x और y भी हैं। हमें यह जांचना है कि सरणी में दी गई श्रेणी में सभी तत्व हैं या नहीं।
इसलिए, यदि इनपुट अंकों की तरह है =[5,8,9,6,3,2,4] x =2 y =6, तो आउटपुट सही होगा क्योंकि सभी तत्व हैं [2,3,4,5 ,6].
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- temp_range :=y - x
- मैं के लिए 0 से लेकर अंकों के आकार तक, करें
- अगर |nums[i]|>=x और |nums[i]| <=y, फिर
- z :=|nums[i]| - एक्स
- यदि अंक[z]> 0, तो
- nums[z] :=-nums[z]
- अगर |nums[i]|>=x और |nums[i]| <=y, फिर
- सीएनटी:=0
- मैं के लिए 0 से लेकर temp_range तक के लिए, करें
- यदि i>=अंकों का आकार, तो
- लूप से बाहर आएं
- यदि अंक [i]> 0, तो
- झूठी वापसी
- अन्यथा,
- सीएनटी:=सीएनटी + 1
- यदि i>=अंकों का आकार, तो
- यदि cnt (temp_range + 1) के समान नहीं है, तो
- झूठी वापसी
- सही लौटें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def solve(nums, x, y) : temp_range = y - x for i in range(0, len(nums)): if abs(nums[i]) >= x and abs(nums[i]) <= y: z = abs(nums[i]) - x if (nums[z] > 0) : nums[z] = nums[z] * -1 cnt = 0 for i in range(0, temp_range + 1): if i >= len(nums): break if nums[i] > 0: return False else: cnt += 1 if cnt != temp_range + 1: return False return True nums = [5,8,9,6,3,2,4] x = 2 y = 6 print(solve(nums, x, y))
इनपुट
[5,8,9,6,3,2,4], 2, 6
आउटपुट
True