দু'টি অ্যারে মার্জ করার জন্য এবং সদৃশগুলি সরিয়ে দেওয়ার জন্য আমি সম্প্রতি এই জাভাস্ক্রিপ্ট কোডটি স্ট্যাকওভারফ্লোতে দেখেছি :
Array.prototype.unique = function() {
var a = this.concat();
for(var i=0; i<a.length; ++i) {
for(var j=i+1; j<a.length; ++j) {
if(a[i] === a[j])
a.splice(j--, 1);
}
}
return a;
};
var array1 = ["Vijendra","Singh"];
var array2 = ["Singh", "Shakya"];
var array3 = array1.concat(array2).unique();
এই কোডটি কাজ করার সময় এটি মারাত্মকভাবে অদক্ষ ( O(n^2)
)। আপনার চ্যালেঞ্জটি কম জটিলতার সাথে একটি অ্যালগরিদম করা।
বিজয়ী মানদণ্ড হ'ল ন্যূনতম জটিলতার সাথে সমাধান , তবে সম্পর্কগুলি সংক্ষিপ্ত দৈর্ঘ্যের দ্বারা অক্ষরগুলিতে ভেঙে দেওয়া হবে।
প্রয়োজনীয়তা :
"শুদ্ধি:" এর জন্য নিম্নলিখিত প্রয়োজনীয়তা পূরণ করে এমন একটি ক্রিয়ায় আপনার সমস্ত কোড এক সাথে প্যাকেজ করুন
- ইনপুট: দুটি অ্যারে
- আউটপুট: এক অ্যারে
- উভয় অ্যারের উপাদানগুলিকে একত্রিত করে- উভয় ইনপুট অ্যারের যে কোনও উপাদান অবশ্যই আউটপুটযুক্ত অ্যারেতে থাকা উচিত।
- আউটপুটযুক্ত অ্যারেতে কোনও সদৃশ হওয়া উচিত।
- অর্ডার কিছু যায় আসে না (মূল বিপরীতে)
- যে কোনও ভাষা গণনা করা হয়
- স্বতন্ত্রতা সনাক্তকরণ বা সেট / অ্যারে মার্জ করার জন্য স্ট্যান্ডার্ড লাইব্রেরির অ্যারে ফাংশনগুলি ব্যবহার করবেন না (যদিও স্ট্যান্ডার্ড লাইব্রেরির অন্যান্য জিনিস ঠিক আছে)। আমাকে এই পার্থক্যটি তৈরি করতে দাও যে অ্যারে কনটেক্সটেশনটি ভাল, তবে উপরে যে সমস্ত ফাংশন ইতিমধ্যে করা আছে তা নয়।
[1, 2, 2, 3]
এবং [2, 3, 4]
ফিরে আসতে [1, 2, 2, 3, 4]
বা [1, 2, 3, 4]
?