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

জাভাস্ক্রিপ্টে ম্যাট্রিক্সে ডায়াগোনালি ট্রাভার্সাল


সমস্যা:

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি স্কোয়ার ম্যাট্রিক্স (সমান সারি ও কলাম) ইনপুট হিসেবে নেবে। ফাংশনটি ম্যাট্রিক্সটিকে ডায়াগোনালি ট্রাভার্স করবে এবং এলিমেন্টগুলো ভিজিট করার ক্রম অনুযায়ী একটি নতুন অ্যারে তৈরি করবে।

উদাহরণ:

const arr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ];

আউটপুট হবে:

const output = [1, 2, 4, 7, 5, 3, 6, 8, 9];

উদাহরণ

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

const arr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; const findDiagonalOrder = (arr = []) => { if(!arr.length){ return []; }; let ind = 0; let colBegin = 0, rowBegin = 0; let rowMax = arr.length, colMax = arr[0].length; const res = [], stack = []; while(rowBegin< rowMax || colBegin=0 ; row++,col--){ if(ind%2 === 0){ stack.push((arr[row][col])); }else{ res.push(arr[row][col]); }; }; ind++; while(stack.length){ res.push(stack.pop()); } colBegin++ if(colBegin> colMax-1 && rowBegin < rowMax){ colBegin = colMax-1 rowBegin++ } }; return res }; console.log(findDiagonalOrder(arr));

কোড ব্যাখ্যা:

ধাপগুলো:

  • এক দিক থেকে ট্রাভার্স করা হয়েছে স্ট্রেটিং পয়েন্ট ট্র্যাক করে।

  • ইন্ডেক্স ইভেন হলে স্ট্যাকে পুশ, ডায়াগোনাল শেষে পপ করে আউটপুটে যোগ করা।

  • পরবর্তী ডায়াগোনালে যাওয়ার সময় ইন্ডেক্স ইনক্রিমেন্ট।

  • কলাম বেগ ইনডেক্স ইনক্রিমেন্ট, শেষে পৌঁছালে রো বেগ ইনক্রিমেন্ট।

আউটপুট

কনসোলে আউটপুট:

[ 1, 2, 4, 7, 5, 3, 6, 8, 9 ]

  1. জাভাস্ক্রিপ্ট const কীওয়ার্ড

  2. জাভাস্ক্রিপ্ট escape() ফাংশন

  3. জাভাস্ক্রিপ্ট DataView()

  4. জাভাস্ক্রিপ্ট Let কীওয়ার্ড