डिजिटल शहरों में एक भयानक जॉम्बी वायरस फैल रहा है। हम डिजिटल सीडीसी पर काम करते हैं और हमारा काम शहर के नक्शों को देखना है और यह बताना है कि ज़ॉम्बी वायरस से कौन से क्षेत्र दूषित हैं, ताकि डिजिटल सेना को पता चले कि बम कहाँ गिराना है।
वे नए प्रकार के डिजिटल जॉम्बी हैं जो केवल लंबवत और क्षैतिज दिशाओं में यात्रा कर सकते हैं और केवल उन्हीं संख्याओं को संक्रमित कर सकते हैं जो उनके समान हैं।
हमें संख्याओं के साथ एक द्वि-आयामी सरणी दी जाएगी।
किसी रहस्यमय कारण से रोगी शून्य हमेशा शहर के उत्तर पश्चिम क्षेत्र (मैट्रिक्स के तत्व [0] [0]) में पाया जाता है और प्लेग वहाँ से बाएँ, दाएँ, ऊपर या नीचे जाने से अन्य कोशिकाओं में फैलता है।
हमें एक ऐसा फ़ंक्शन बनाना होगा जो एक नक्शा (2-आयामी सरणी) लौटाए जिसमें सभी दूषित क्षेत्रों को 1 के रूप में चिह्नित किया गया हो और वायरस मुक्त 0 के रूप में चिह्नित किया गया हो।
दूसरे शब्दों में, हमें सभी मैट्रिक्स तत्वों को [0] [0] के समान मान के साथ खोजना होगा, जिसे हम [0] [0] से केवल नीचे, ऊपर, दाएं या बाएं ले जाकर जा सकते हैं - एक में जाने के बिना फ़ील्ड कोई अन्य मान संग्रहीत करता है।
उदाहरण
निम्नलिखित कोड है -
const arr =[ [9, 1, 2, 3, 4, 1, 2, 9], [9, 9, 9, 2, 1, 5, 9, 9], [9, 2, 9, 3, 7, 9, 1, 9], [6, 9, 9, 9, 0, 9, 2, 9], [5, 4, 3, 9, 9, 9, 4, 9], [9, 3, 9, 5, 8, 9, 9, 9], [9, 9, 9, 9, 9, 9, 7, 9], [9, 9, 1, 2, 3, 9, 8, 9] ]; const findZombies =arr => { मुझे, j, परिणाम =[], ज़ोंबी =arr [0] [0], पेड़ ={}; कॉन्स चांस =([i, j]) => { अगर (!tree[i] || !tree[i][j]) रिटर्न; परिणाम [i] [जे] =1; वर अस्थायी =पेड़ [i] [जे]; पेड़ [i] [जे] =अपरिभाषित; अस्थायी। प्रत्येक (मौका) के लिए; } के लिए (i =0; iगिरफ्तार [एक्स] &&गिरफ्तार [एक्स] [वाई] ===ज़ोंबी); }; }; मौका ([0, 0]); वापसी परिणाम;};console.log(findZombies(arr));
यह कंसोल पर निम्न आउटपुट उत्पन्न करेगा -
[ [ 1, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 0, 0, 1, 1], [ 1, 0, 1, 0, 0 , 1, 0, 1], [0, 1, 1, 1, 0, 1, 0, 1], [0, 0, 0, 1, 1, 1, 0, 1], [ 1, 0, 1 , 0, 0, 1, 1, 1], [ 1, 1, 1, 1, 1, 1, 0, 1], [ 1, 1, 0, 0, 0, 1, 0, 1]]पूर्व>