मान लीजिए कि हमारे पास सकारात्मक मूल्यों की एक सरणी है जिसे अंक कहा जाता है, हमें सभी संभावित विषम-लंबाई वाले उप-सरणियों का योग खोजना होगा। जैसा कि हम जानते हैं कि एक उप-सरणी सरणी का एक सन्निहित अनुवर्ती है। हमें संख्याओं के सभी विषम-लंबाई वाले उप-सरणियों का योग ज्ञात करना है।
इसलिए, यदि इनपुट nums =[3,8,2,5,7] जैसा है, तो आउटपुट विषम-लंबाई वाले उप-सरणी हैं -
nums[0] = 3 nums[1] = 8 nums[2] = 2 nums[3] = 5 nums[4] = 7 nums[0..2], so sum = 13 nums[1..3], so sum = 15 nums[2..4], so sum = 14 nums[0..4] = 25 So total sum is 3+8+2+5+7+13+15+14+25 = 92
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
कुल:=0
-
आईडीएक्स:=0
-
l:=सभी विषम सूचकांकों की सूची
-
जबकि idx <आकार का l, करें
-
के:=एल[आईडीएक्स]
-
मेरे लिए 0 से लेकर अंकों के आकार तक, करें
-
अगर i+k <अंकों का आकार + 1, तो
-
कुल:=कुल + सभी तत्वों का योग सूचकांक i से i+k-1 तक के अंकों में
-
-
-
आईडीएक्स:=आईडीएक्स + 1
-
-
कुल वापसी
उदाहरण (पायथन)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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