কম্পিউটার

জাভাস্ক্রিপ্টে উল্লম্ব রেখার অংশগুলির একটি সেটে সমস্ত বিচ্ছিন্ন ছেদগুলি খুঁজুন৷


আমাদের কাছে y1 এবং y2 স্থানাঙ্ক দ্বারা সংজ্ঞায়িত উল্লম্ব অঞ্চলগুলির একটি সেট রয়েছে, যেখানে y1 হল শুরুর বিন্দু এবং y2 হল প্রতিটি অঞ্চলের শেষ বিন্দু৷

আমাদের স্থানাঙ্ক সিস্টেমের উৎপত্তি হল উপরের-বাম কোণে, তাই y2 সর্বদা y1 থেকে বড় হয়৷

এটি একটি উদাহরণ -

const অঞ্চল =[ [10, 100], [50, 120], [60, 180], [140, 220]];

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসাবে একটি অঞ্চল অ্যারে এবং দ্বিতীয় আর্গুমেন্ট হিসাবে একটি সংখ্যা নেয়৷

আমরা একটি নির্দিষ্ট আকারের চেয়ে বড় সমস্ত বিচ্ছিন্ন ছেদ খুঁজে বের করতে চাই, (ফাংশনের দ্বিতীয় আর্গুমেন্ট দ্বারা নির্দিষ্ট করা হয়েছে)।

ধরা যাক, উদাহরণস্বরূপ, 20 ইউনিট।

তারপর উপরের অ্যারের জন্য আউটপুট −

এর মত হওয়া উচিত
কনস্ট আউটপুট =[ [60, 100], [140, 180]];

আমরা একটি সরলীকৃত অ্যালগরিদম ব্যবহার করতে পারি এবং ওভারল্যাপিং আইটেমগুলি অনুসন্ধানের জন্য পণ্য জুড়ে ব্যবহার করতে পারি।

তারপরে পুনরাবৃত্তি করে সাধারণ অংশগুলি পান এবং শুধুমাত্র অজানা মিলগুলি ফিল্টার করুন৷

উদাহরণ

এর জন্য কোড হবে −

const অঞ্চল =[ [10, 100], [50, 120], [60, 180], [140, 220]];const getIntersections =(arr,num) => { let disjoint, res; ফেরত arr.reduce((acc,val,ind,array) => { if (val.used){ ​​return acc; }; res =array.map((el, index) => array[(ind + index) % array.length]) .reduce((s,e) => { disjoint =[Math.max(s[0],e[0]), Math.min(s[1],e[1])]; রিটার্ন ডিসজয়েন্ট [0] <ডিসজয়েন্ট[1]? (ই. ব্যবহার করা =সত্য, বিচ্ছিন্ন) :s; }); res[1] - res[0]> num &&acc.push(res); রিটার্ন acc; }, []);}console.log(getIntersections(regions, 20));

আউটপুট

এবং কনসোলে আউটপুট হবে −

<প্রে> [ [ 60, 100 ], [ 140, 180 ] ]
  1. অ্যারে বনাম জাভাস্ক্রিপ্টে সেট।

  2. একটি প্রাকৃতিক সংখ্যার সমস্ত ভাজক খুঁজুন - C++ এ 1 সেট করুন

  3. C++ এ প্রদত্ত সেটের সমস্ত স্বতন্ত্র উপসেট খুঁজুন

  4. অনুভূমিক এবং উল্লম্ব রেখার অংশগুলির মধ্যে ত্রিভুজের সংখ্যা খুঁজে পেতে C++ প্রোগ্রাম