এই বিভাগে আমরা একটি পাইথন প্রোগ্রাম দেখব যা রো-ওয়াইজ এবং কলাম-ওয়াইজ সর্টেড ম্যাট্রিক্সে নেগেটিভ সংখ্যা গণনা করে অপ্টিমাল সমাধান দিয়ে।
রো-ওয়াইজ এবং কলাম-ওয়াইজ সর্টেড অ্যারে মানে, যেকোনো ইনডেক্সের মান পরবর্তী কলামের ইনডেক্সের মানের চেয়ে ছোট বা সমান এবং পরবর্তী রোয়ের একই কলামের ইনডেক্সের মানের চেয়ে ছোট বা সমান।
উদাহরণ: নিচের ম্যাট্রিক্স M-এ
M = [[-40, -12, 1, 5],
[-20, -2, 5, 15],
[-22, -1, 13, 18],
[-12, 0, 15, 38]]
উপরের ম্যাট্রিক্স M-এ, প্রথম রোয়ের প্রথম কলাম -40, যা একই রোয়ের পরবর্তী কলামের মান -12-এর চেয়ে ছোট এবং একই কলামের পরবর্তী রোয়ের মান -20-এর চেয়েও ছোট এবং এইভাবেই।
উদাহরণ ২
# The matrix must be sorted in ascending order. If not, the algorithm will not work properly
matrix = [
[-40, -12, 1, 5],
[-20, -2, 5, 15],
[-22, -1, 13, 18],
[-12, 0, 15, 38]]
# To obtain the number of row
rowCount = len(matrix)
columnCount = 0
# To obtain the number of column
for i in matrix[0]:
columnCount += 1
a = 0
b = 0
count_Of_Negative_Integer = 0
while a < rowCount and b < columnCount:
if matrix[a][b] >= 0:
a += 1
b = 0
else:
count_Of_Negative_Integer += 1
b += 1
print("Count of Negative Integers in sorted Matrix is: ", count_Of_Negative_Integer)
ফলাফল
Count of Negative Integers in sorted Matrix is: 7
উপরের প্রোগ্রামে,
- >=0: প্রথমে আমরা ০ থেকে ছোট নেগেটিভ ইন্টিজারের গণনা খুঁজে বের করার চেষ্টা করি।
- কারণ উপরের প্রোগ্রামে, আমরা নেগেটিভ ইন্টিজারের গণনা পেতে চাইছি, তবে একই প্রোগ্রামটি যেকোনো নির্দিষ্ট ইন্টিজার (n) থেকে ছোট ইন্টিজারের গণনা পেতে ব্যবহার করা যায়। উদাহরণস্বরূপ ৫ থেকে ছোট বা সমান ইন্টিজারের গণনা পেতে >5 ব্যবহার করে।