একটি 2D ম্যাট্রিক্স দেওয়া আছে যেখানে প্রতিটি সারি [height, count] ধারণ করে। count বলতে է সেই ব্যক্তির সামনে কতজন তার সমান বা বেশি উচ্চতার মানুষ আছে। শাফল করা এই কিউর মূল ক্রম ফেরাতে হবে।
উদাহরণ: [[2,2],[4,0],[5,0]] হলে আউটপুট [[4,0],[5,0],[2,2]]।
সমাধানের ধাপসমূহ
- উচ্চতা বর্ধমান এবং কাউন্ট অবরোহী ক্রমে সর্ট করুন
- আউটপুট তালিকা None দিয়ে শুরু করুন
- প্রতিটি (h,c) জন্য উপযুক্ত খালি স্লট খুঁজে বসান
- ফলাফল ফেরত দিন
উদাহরণ কোড
class Solution:
def solve(self, matrix):
N = len(matrix)
matrix.sort(key=lambda x: [x[0], -x[1]])
ans = [None] * N
for h, c in matrix:
temp = 0
for i, num in enumerate(ans):
if temp >= c and num is None:
ans[i] = [h, c]
break
if num is None or num[0] >= h:
temp += 1
return ans
ob = Solution()
matrix = [
[2, 2],
[4, 0],
[5, 0]
]
print(ob.solve(matrix))
ইনপুট
[[2, 2],[4, 0],[5, 0]]
আউটপুট
[[4, 0], [5, 0], [2, 2]]