মান লিইয়ে নিই n জন লোক রয়েছে যাদের আইডি 0 থেকে n - 1 পর্যন্ত এবং প্রতিটি লোক ঠিক একটি গ্রুপে থাকে। আমাদের groupSizes নামক একটি অ্যারে রয়েছে যার দৈর্ঘ্য n। এই অ্যারেটি নির্দেশ করে প্রতিটি লোক কোন আকারের গ্রুপে আছে, আমাদের গ্রুপগুলো কী কী এবং প্রতিটি গ্রুপে লোকদের আইডি কী কী তা বের করতে হবে।
মান লিইয়ে নিই ইনপুট হয় - [3,3,3,3,3,1,3], তবে আউটপুট হবে [[5], [0, 1, 2], [3, 4, 6]], অন্যান্য সম্ভাব্য সমাধান হতে পারে [[2,1,6],[5], [0,4,3]] বা [[5], [0,6,2], [4,3,1]]
समाधान पद्धति
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- একটি ম্যাপ m তৈরি করুন
- i = 0 থেকে দেওয়া অ্যারে a-এর আকার - 1 পর্যন্ত
- i কে m[g[i]]-এ ইনসার্ট করুন
- একটি res ম্যাট্রিক্স তৈরি করুন
- ম্যাপ m-এ থাকা প্রতিটি এলিমেন্ট i জন্য
- j = 0 থেকে i-তে থাকা লিস্টের আকার পর্যন্ত
- i-তে থাকা অ্যারেতে j-তম এলিমেন্ট কে temp-এ ইনসার্ট করুন
- যদি temp-এর আকার = i-এর কী হয়
- তবে temp কে res-এ নতুন সারি হিসেবে ইনসার্ট করুন
- temp অ্যারে ক্লিয়ার করুন
- j = 0 থেকে i-তে থাকা লিস্টের আকার পর্যন্ত
- res ফেরত দিন।
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#include <bits/stdc++.h> using namespace std; void print_vector(vector<vector<auto> > v){ cout << "["; for(int i = 0; i
इनपुट
[3,3,3,3,3,1,3]
आउटपुट
[[5, ],[0, 1, 2, ],[3, 4, 6, ],]