কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে দুটি BST-এ টু-সম (Two Sum) সমস্যা


সমস্যা:

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা দুটি বাইনারি সার্চ ট্রির রুট (root1, root2) প্রথম ও دوم আর্গুমেন্ট হিসেবে এবং তৃতীয় আর্গুমেন্ট হিসেবে একটি সংখ্যা (target) নেবে। ফাংশনটি true রিটার্ন করবে যদি এবং কেবল যদি প্রথম ট্রিতে একটি নোড এবং دوم ট্রিতে একটি নোড থাকে যাদের মান যোগ করলে target হয়, অন্যথায় false।

উদাহরণস্বরূপ, ইনপুট যদি হয় –

const target = 23;

BSTs

জাভাস্ক্রিপ্টে দুটি BST-এ টু-সম (Two Sum) সমস্যা

তবে আউটপুট হবে –

const output = true;

আউটপুট ব্যাখ্যা:

কারণ প্রথম ট্রিতে ৬ এবং دوم ট্রিতে ১৭ আছে যাদের যোগফল ২৩।

উদাহরণ

কোডটি নিচের মতো –

class Node{ constructor(data) { this.data = data; this.left = null; this.right = null; }; }; class BinarySearchTree{ constructor(){ this.root = null; } insert(data){ var newNode = new Node(data); if(this.root === null){ this.root = newNode; }else{ this.insertNode(this.root, newNode); }; }; insertNode(node, newNode){ if(newNode.data < node.data){ if(node.left === null){ node.left = newNode; }else{ this.insertNode(node.left, newNode); }; } else { if(node.right === null){ node.right = newNode; }else{ this.insertNode(node.right,newNode); }; }; }; }; const tree1 = new BinarySearchTree(); tree1.insert(1); tree1.insert(3); tree1.insert(4); tree1.insert(2); tree1.insert(4); tree1.insert(5); tree1.insert(6); const tree2 = new BinarySearchTree(); tree2.insert(9); tree2.insert(6); tree2.insert(11); tree2.insert(3); tree2.insert(8); tree2.insert(10); tree2.insert(17); const twoSumBSTs = (root1, root2, target) => { if(root1 == null || root2 == null) return false; if(root1.data + root2.data == target) return true; if(root1.data + root2.data < target) { return twoSumBSTs(root1.right, root2, target) || twoSumBSTs(root1, root2.right, target); }else{ return twoSumBSTs(root1.left, root2, target) || twoSumBSTs(root1, root2.left, target); }; }; const target = 23; console.log(twoSumBSTs(tree1.root, tree2.root, target));

আউটপুট

কনসোলে আউটপুট হবে –

true
  1. জাভাস্ক্রিপ্টে দুটি সেট বিয়োগ করা (Subtract)

  2. জাভাস্ক্রিপ্টে দুটি সেট যোগ করা (Union)

  3. জাভাস্ক্রিপ্টে দুটি হ্যাশ টেবিল জয়েন করা

  4. জাভাস্ক্রিপ্টে দুটি অবজেক্ট মার্জ করা