Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में सरणी में उपसरणी की डिग्री ढूंढना


किसी सरणी की डिग्री को उसके किसी भी तत्व की अधिकतम आवृत्ति के रूप में परिभाषित किया जाता है।

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

इस सरणी की डिग्री 4 है, क्योंकि 3 इस सरणी में 4 बार दोहराया गया है।

हमें एक JavaScript फ़ंक्शन लिखना है जो literals की एक सरणी लेता है। हमारे फ़ंक्शन का कार्य उस सरणी से सबसे छोटी सतत उपसरणी की लंबाई ढूंढना है जिसकी डिग्री पूरी सरणी के समान हो।

उदाहरण

const arr = [1, 2, 3, 3, 5, 6, 4, 3, 8, 3]; 
const findShortestSubArray = (arr = []) => {
    let range = new Map(), maxDegree = 0, minLength = Infinity;
    for(let i = 0; i < arr.length; i++){
        if(range.has(arr[i])) {
            let start = range.get(arr[i])[0];
            let degree = range.get(arr[i])[2];
            degree++;
            range.set(arr[i], [start, i, degree]);
            if(degree > maxDegree)
                maxDegree = degree;
        } else {
            let degree = 1;
            range.set(arr[i],[i, i, degree]);
            if(degree > maxDegree)
                maxDegree = degree;
        }
    }
    for (let key of range.keys()){
        let val = range.get(key);
        if(val[2] === maxDegree){
            let diff = (val[1] - val[0]) + 1;
            if(diff < minLength) minLength = diff;
        }
    }
    return minLength;
};
console.log(findShortestSubArray(arr));

आउटपुट

कंसोल में आउटपुट होगा -

8
  1. जावास्क्रिप्ट Array reverse() मेथड जावास्क्रिप्ट Array reverse() मेथड

    जावास्क्रिप्ट का reverse() मेथड एरे एलिमेंट्स को उलटने के लिए उपयोग किया जाता है। सिंटैक्स इस प्रकार है: array.reverse() उदाहरण 1 <!DOCTYPE html> <html> <body> <h2>डेमो हेडिंग</h2> <p id=test></p> <script> var arrStud = [Laptop, Desktop, Ta

  1. जावास्क्रिप्ट array.keys() मेथड जावास्क्रिप्ट array.keys() मेथड

    जावास्क्रिप्ट का array.keys() मेथड एरे की कीज के साथ एक Array Iterator ऑब्जेक्ट लौटाने के लिए उपयोग किया जाता है। सिंटैक्स इस प्रकार है: array.keys() उदाहरण 1 <!DOCTYPE html> <html> <body> <h2>कार वेरिएंट्स</h2> <p id=test></p> <script> var

  1. जावास्क्रिप्ट Array.isArray() मेथड जावास्क्रिप्ट Array.isArray() मेथड

    जावास्क्रिप्ट का Array.isArray() मेथड यह निर्धारित करने के लिए उपयोग किया जाता है कि कोई ऑब्जेक्ट एरे है या नहीं। सिंटैक्स इस प्रकार है: Array.isArray(obj) ऊपर, obj पैरामीटर टेस्ट किया जाने वाला ऑब्जेक्ट है। उदाहरण 1 <!DOCTYPE html> <html> <body> <h2>रैंकिंग पॉइंट्स</