দুটি বন্ধু আমল ও বিমাল রেস্টুরেন্ট বেছে নিতে চান। উভয়ের প্রিয় রেস্টুরেন্টের লিস্ট স্ট্রিং আকারে দেওয়া আছে। তাদের সাধারণ আগ্রহ যেটির লিস্ট ইন্ডেক্স যোগফল ন্যূনতম, সেটি বের করতে হবে। টাই হলে সব রিটার্ন করুন।
ইনপুট ["ABC","PQR","MNO","XYZ"] এবং ["TUV","GHI","KLM","ABC"] হলে আউটপুট ["ABC"]।
সমাধানের ধাপসমূহ
- mp ম্যাপ সংজ্ঞায়িত করুন (key: ইন্ডেক্স যোগফল, value: স্ট্রিং লিস্ট)
- least := INF
- প্রতিটি i ∈ l1, j ∈ l2 এর জন্য: l1[i]==l2[j] হলে mp[i+j]-এ l1[i] পুশ করুন
- res অ্যারে সংজ্ঞায়িত করুন
- it := mp.begin() (সবচেয়ে ছোট key)
- res := it->second
- res রিটার্ন করুন
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<auto> v){
cout << "[";
for(int i = 0; isecond;
return res;
}
};
int main(){
Solution ob;
vector<string> v = {"ABC","PQR","MNO","XYZ"}, v1 = {"TUV","GHI","KLM","ABC"};
print_vector(ob.findRestaurant(v, v1));
} ইনপুট
{"ABC","PQR","MNO","XYZ"}, {"TUV","GHI","KLM","ABC"}আউটপুট
[ABC, ]