ধরুন আমাদের কাছে A নামক পূর্ণসংখ্যার একটি অ্যারে এবং একটি অ্যারে প্রশ্ন রয়েছে। i-th query value =queries[i][0] এবং index =queries[i][1] এর জন্য, আমরা A[index]-এ মান যোগ করব। তারপর, i-th প্রশ্নের উত্তর হল A-এর জোড় মানের সমষ্টি। আমাদের সমস্ত প্রশ্নের উত্তর খুঁজতে হবে। আমরা একটি অ্যারে খুঁজে পাব, যাতে i-th প্রশ্নের উত্তর হিসেবে [i] উত্তর থাকতে হবে। সুতরাং যদি অ্যারেটি [1,2,3,4] এর মতো হয় এবং ক্যোয়ারী অ্যারেটি হয় [[1,0],[-3,1],[-4,0],[2,3]], তাহলে উত্তর অ্যারে হবে [8,6,2,4]। তাই প্রথমে অ্যারে হল [1,2,3,4], তারপর প্রথম প্রশ্নের পরে, A[0] এর সাথে 1 যোগ করুন, তারপর অ্যারে হবে [2,2,3,4], জোড় মানের সমষ্টি হল 2 + 2 + 4 =8. দ্বিতীয় প্রশ্নের জন্য, এটি A[1] এর সাথে -3 যোগ করবে, তারপর অ্যারে হবে [2,-1,3,4], তাই জোড় সংখ্যার যোগফল 2 + 4 =6 এর মতো আমরা অ্যারে পাচ্ছি [8,6,2,4]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- ফলাফল সঞ্চয় করতে res নামের একটি অ্যারে সংজ্ঞায়িত করুন
- সমষ্টি :=0
- প্রতিটি উপাদানের জন্য আমি A
- এ
- যদি আমি জোড় হয়, তাহলে যোগফল :=যোগফল + i
- প্রত্যেকটি প্রশ্নের জন্য i প্রশ্নে −
- সূচক :=i[1]
- val :=i[0]
- যদি A[সূচি] জোড় হয়, তাহলে যোগফল :=যোগফল – A[সূচক]
- A[index] :=A[index] + val
- যদি A[সূচি] জোড় হয়, তাহলে যোগফল :=যোগফল + A[সূচক]
- অধিক্ষেত্রের সাথে যোগ করা হয়
- রিটার্ন রিটার্ন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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]