मान लीजिए कि हमारे पास गैर-ऋणात्मक संख्याओं की एक सूची है जिसे अंक कहा जाता है और एक अन्य सकारात्मक मान k है। हमें यह जांचना होगा कि क्या कम से कम 2 लंबाई का कोई सबलिस्ट है जिसका योग k का गुणक है या नहीं।
इसलिए, यदि इनपुट nums =[12, 6, 3, 4] k =5 की तरह है, तो आउटपुट ट्रू होगा, क्योंकि सबलिस्ट [12, 3] का योग 15 है, जो 5 से विभाज्य है।>
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- योग :=0
- m :=एक नया नक्शा
- म[0] :=-1
- मैं के लिए 0 से लेकर अंकों के आकार तक, करें
- योग :=योग + अंक[i]
- योग :=योग मॉड k
- यदि योग m में मौजूद है, तो
- अगर मैं - एम[योग]>=2, तो
- सही लौटें
- अगर मैं - एम[योग]>=2, तो
- अन्यथा,
- एम [योग] :=मैं
- झूठी वापसी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution:
def solve(self, nums, k):
sum = 0
m = {}
m[0] = -1
for i in range(0, len(nums)):
sum += nums[i]
sum %= k
if sum in m:
if i - m[sum] >= 2:
return True
else:
m[sum] = i
return False
ob = Solution()
nums = [12, 6, 3, 4]
k = 5
print(ob.solve(nums, k)) इनपुट
[12, 6, 3, 4], 5
आउटपुट
True