কম্পিউটার টিউটোরিয়াল

পাইথনে ম্যাট্রিক্সে নির্দিষ্ট সেলের সারি ও কলাম বাদ দিয়ে বাকি সব উপাদানের যোগফল

একটি ২D ম্যাট্রিক্স এবং কিছু সেল ইনডেক্স (i, j) দেওয়া আছে। প্রতিটি সেল ইনডেক্সের জন্য, i-তম সারি এবং j-তম কলাম বাদ দিয়ে বাকি সব উপাদানের যোগফল বের করতে হবে।

উদাহরণ

ম্যাট্রিক্স: [[2, 2, 3], [4, 5, 7], [6, 4, 3]]

সেল ইনডেক্স: [(0, 0), (1, 1), (0, 1)]

আউটপুট: [19, 14, 20]

সমাধানের পদ্ধতি

  1. প্রতিটি কোয়েরি (cell index) এর জন্য পুরো ম্যাট্রিক্স ট্রাভার্স করা হয়।
  2. যদি বর্তমান সারি != কোয়েরি সারি AND বর্তমান কলাম != কোয়েরি কলাম হয়, তবে যোগফলে যোগ করা হয়।
  3. অপ্টিমাইজেশন: সারি ও কলামের যোগফল প্রি-কম্পিউট করে রাখলে O(1) কোয়েরি সম্ভব।

পাইথন কোড


def show_sums(mat, ind_arr):
    n = len(ind_arr)
    ans = []
    for i in range(n):
        Sum = 0
        row = ind_arr[i][0]
        col = ind_arr[i][1]
        for j in range(len(mat)):
            for k in range(len(mat[0])):
                if j != row and k != col:
                    Sum += mat[j][k]
        ans.append(Sum)
    return ans

mat = [[2, 2, 3], [4, 5, 7], [6, 4, 3]]
ind_arr = [(0, 0), (1, 1), (0, 1)]
print(show_sums(mat, ind_arr))

ইনপুট

mat = [[2, 2, 3], [4, 5, 7], [6, 4, 3]], ind_arr = [(0, 0), (1, 1), (0, 1)]

আউটপুট

[19, 14, 20]
  1. পাইথনে বাইনারি ট্রির সব নোডের মান যোগফল বের করা

  2. পাইথনে লিস্টে দেওয়া এলিমেন্টগুলোর ফ্রিকোয়েন্সির যোগফল বের করুন

  3. পাইথন প্রোগ্রাম ডিকশনারির সব আইটেমের যোগফল বের করা

  4. পাইথনে রো এবং কলাম ওয়াইজ সর্টেড ম্যাট্রিক্স থেকে সর্টেড অর্ডারে সব এলিমেন্ট প্রিন্ট করা