मान लीजिए हमारे पास nums नामक धनात्मक मानों की एक सरणी है, हमें सभी संभावित विषम-लंबाई वाले सबएरे का योग ढूंढना है। जैसा कि हम जानते हैं एक सबएरे सरणी का एक सन्निकट उपअनुक्रम है। हमें nums के सभी विषम-लंबाई वाले सबएरे का योग ढूंढना है।
इसलिए, यदि इनपुट है: nums = [3,8,2,5,7], तो आउटपुट होगा: विषम-लंबाई वाले सबएरे हैं:
nums[0] = 3 nums[1] = 8 nums[2] = 2 nums[3] = 5 nums[4] = 7 nums[0..2], योग = 13 nums[1..3], योग = 15 nums[2..4], योग = 14 nums[0..4] = 25 तो कुल योग 3+8+2+5+7+13+15+14+25 = 92
हल करने के चरण
- total := 0
- idx := 0
- l := सभी विषम स्थान वाले इंडेक्स की सूची
- जब idx < l का आकार:
- k := l[idx]
- i को 0 से nums के आकार तक के लिए:
- यदि i + k < nums का आकार + 1, तो: total := total + nums के इंडेक्स i से i+k-1 तक सभी तत्वों का योग
- idx := idx + 1
- total वापस करें
उदाहरण (Python)
def solve(nums):
total = 0
idx = 0
l = [i for i in range(len(nums) + 1) if i % 2 != 0]
while idx < len(l):
k = l[idx]
for i in range(len(nums)):
if i + k < len(nums) + 1:
total += sum(nums[i:i+k])
idx += 1
return total
nums = [3, 8, 2, 5, 7]
print(solve(nums))
इनपुट
[3,8,2,5,7]
आउटपुट
92