मान लीजिए हमारे पास एक सरणी nums और एक मान k है। हमें उन लगातार सबसीक्वेंस की संख्या खोजनी है जिनका योग k से विभाज्य है।
तो, यदि इनपुट k = 3, nums = [1,2,3,4,1] है, तो आउटपुट 4 होगा क्योंकि सबसीक्वेंस हैं [3], [1,2], [1,2,3] और [2,3,4]।
इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:
- x := आकार k की एक सरणी जिसे 0 से भरा गया है
- x[0] := 1
- r:= 0, s:= 0
- nums में प्रत्येक elem के लिए, करें
- s :=(s + elem) mod k
- r := r + x[s]
- x[s] := x[s] + 1
- r लौटाएं
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def solve(k, nums): x = [0]*k x[0] = 1 r=s=0 for elem in nums: s = (s+elem) % k r += x[s] x[s] += 1 return r k = 3 nums = [1,2,3,4,1] print(solve(k, nums))
इनपुट
3, [1,2,3,4,1]
आउटपुट
4