मान लीजिए कि हमारे पास ए नामक पूर्णांक की एक सरणी है, और एक सरणी क्वेरी है। i-वें क्वेरी वैल्यू =क्वेरीज़ [i] [0] और इंडेक्स =क्वेरीज़ [i] [1] के लिए, हम ए [इंडेक्स] में वैल्यू जोड़ देंगे। फिर, i-वें प्रश्न का उत्तर A के सम मानों का योग है। हमें सभी प्रश्नों का उत्तर खोजना है। हम एक सरणी पाएंगे, जिसमें i-th क्वेरी के उत्तर के रूप में उत्तर [i] होना चाहिए। तो अगर सरणी [1,2,3,4] की तरह है, और क्वेरी सरणी [[1,0],[-3,1],[-4,0],[2,3]] की तरह है, तो उत्तर सरणी [8,6,2,4] की तरह होगी। तो सबसे पहले सरणी [1,2,3,4] है, फिर पहली क्वेरी के बाद, ए [0] के साथ 1 जोड़ें, फिर सरणी [2,2,3,4] होगी, यहां तक कि मानों का योग भी है 2 + 2 + 4 =8. दूसरी क्वेरी के लिए, यह ए [1] के साथ -3 जोड़ देगा, फिर सरणी [2,-1,3,4] होगी, इसलिए सम संख्याओं का योग 2 + 4 =6 . इस तरह हमें सरणी मिल रही है [8,6,2,4]
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- परिणाम संग्रहीत करने के लिए res नामक एक सरणी परिभाषित करें
- योग :=0
- ए में प्रत्येक तत्व के लिए
- यदि मैं सम है, तो योग :=योग + i
- प्रश्नों में प्रत्येक प्रश्न के लिए -
- सूचकांक:=i[1]
- वैल:=मैं[0]
- यदि A[सूचकांक] सम है, तो योग :=योग – A[सूचकांक]
- A[index] :=A[index] + val
- यदि A[index] सम है, तो योग :=sum + A[index]
- राशि को रेस में जोड़ा जाता है
- रिटर्न रेस
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
class Solution(object): def sumEvenAfterQueries(self, A, queries): result = [] sum = 0 for i in A: if i%2==0: sum+=i for i in queries: index = i[1] val = i[0] if A[index] % 2==0: sum-=A[index] A[index]+=val if A[index]%2==0: sum+=A[index] result.append(sum) return result ob1 = Solution() print(ob1.sumEvenAfterQueries([1,2,3,4], [[1,0],[-3,1],[-4,0],[2,3]]))
इनपुट
[1,2,3,4] [[1,0],[-3,1],[-4,0],[2,3]]
आउटपुट
[8,6,2,4]