मान लीजिए कि हमारे पास गैर-ऋणात्मक संख्याओं की एक सूची है जिसे अंक कहा जाता है और एक अन्य सकारात्मक मान 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