কম্পিউটার

সমস্যা:জাভাস্ক্রিপ্টে টমেটো পচতে সময় নেয়


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি 2-ডি অ্যারে সংখ্যা, arr, একমাত্র যুক্তি হিসাবে নেয়৷

অ্যারের সংখ্যা −

হতে পারে
  • মান 0 যা একটি খালি ঘর প্রতিনিধিত্ব করে;

  • মান 1 যা একটি তাজা টমেটো প্রতিনিধিত্ব করে;

  • মান 2 যা একটি পচা টমেটোকে প্রতিনিধিত্ব করে।

প্রতি মিনিটে, একটি পচা টমেটোর সংলগ্ন (4-দিক দিয়ে) যে কোনো তাজা টমেটো পচে যায়।

আমাদের ফাংশনটি ন্যূনতম সংখ্যক মিনিট ফেরত দেওয়ার কথা যা অতিবাহিত হওয়া আবশ্যক যতক্ষণ না কোনও কোষে একটি তাজা টমেটো না থাকে। যদি এটি অসম্ভব হয়, তাহলে আমাদের উচিত -1 এর পরিবর্তে ফিরে আসা।

উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −

const arr = [
   [2, 1, 1],
   [1, 1, 0],
   [0, 1, 1]
];

তারপর আউটপুট −

হওয়া উচিত
const output = 4;

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

সময় অতিবাহিত টমেটোর অবস্থা
1
[
[2, 2, 1],
[2, 1, 0],
[0, 1, 1]
]
2
[
[2, 2, 2],
[2, 2, 0],
[0, 1, 1]
]
3
[
[2, 2, 2],
[2, 2, 0],
[0, 2, 1]
]
4
[
[2, 2, 2],
[2, 2, 0],
[0, 2, 2]
]

উদাহরণ

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

const arr = [
   [2, 1, 1],
   [1, 1, 0],
   [0, 1, 1]
];
const timeToRot = (arr = []) => {
   let fresh = 0;
   let count = -1;
   let curr = [];
   for(let i = 0; i < arr.length; i++){
      for(let j = 0; j < arr[i].length; j++){
         if(arr[i][j] === 1){
            fresh += 1;
         };
         if(arr[i][j] === 2){
            curr.push([i, j]);
         };
      };
   };
   if(!fresh){
      return 0;
   };
   while(curr.length > 0){
      count += 1;
      const next = [];
      const rotten = (i, j) => {
         arr[i][j] = 2
         next.push([i, j])
         fresh -= 1
      };
      for(const [i, j] of curr){
         if (arr[i - 1] && arr[i - 1][j] === 1) {
            rotten(i - 1, j);
         };
         if (arr[i + 1] && arr[i + 1][j] === 1) {
            rotten(i + 1, j);
         };
         if (arr[i][j - 1] === 1) {
            rotten(i, j - 1);
         };
         if (arr[i][j + 1] === 1) {
            rotten(i, j + 1);
         };
      }
      curr = next
   };
   return fresh === 0 ? count : -1;
};
console.log(timeToRot(arr));

আউটপুট

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

4

  1. 2 জাভাস্ক্রিপ্টে কীবোর্ড সমস্যা

  2. জাভাস্ক্রিপ্টে শব্দ টাইপ করতে সময় গণনা করা

  3. জাভাস্ক্রিপ্টে মিটিং রুম 2 সমস্যা

  4. জাভাস্ক্রিপ্টে কলা বিতরণের সমস্যা