
- Javascript Basics Tutorial
- Javascript - Home
- Javascript - Overview
- Javascript - Syntax
- Javascript - Enabling
- Javascript - Placement
- Javascript - Variables
- Javascript - Operators
- Javascript - If...Else
- Javascript - Switch Case
- Javascript - While Loop
- Javascript - For Loop
- Javascript - For...in
- Javascript - Loop Control
- Javascript - Functions
- Javascript - Events
- Javascript - Cookies
- Javascript - Page Redirect
- Javascript - Dialog Boxes
- Javascript - Void Keyword
- Javascript - Page Printing
- JavaScript Objects
- Javascript - Objects
- Javascript - Number
- Javascript - Boolean
- Javascript - Strings
- Javascript - Arrays
- Javascript - Date
- Javascript - Math
- Javascript - RegExp
- Javascript - HTML DOM
- JavaScript Advanced
- Javascript - Error Handling
- Javascript - Validations
- Javascript - Animation
- Javascript - Multimedia
- Javascript - Debugging
- Javascript - Image Map
- Javascript - Browsers
- JavaScript Useful Resources
- Javascript - Questions And Answers
- Javascript - Quick Guide
- Javascript - Functions
- Javascript - Resources
Finding degree of subarray in an array JavaScript
The degree of an array of literals is defined as the maximum frequency of any one of its elements.
const arr = [1, 2, 3, 3, 5, 6, 4, 3, 8, 3];
The degree of this array is 4, because 3 is repeated 4 times in this array.
We are required to write a JavaScript function that takes in an array of literals. The task of our function is to find the length of the smallest continious subarray from the array whose degree is same as of the whole array.
Example
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));
Output
And the output in the console will be −
8
- Related Articles
- Finding maximum length of common subarray in JavaScript
- Finding the rotation of an array in JavaScript
- Finding the mid of an array in JavaScript
- Degree of an Array in C++
- Finding the index position of an array inside an array JavaScript
- Finding unlike number in an array - JavaScript
- Finding sum of a range in an array JavaScript
- Finding product of an array using recursion in JavaScript
- Finding all possible subsets of an array in JavaScript
- Finding the majority element of an array JavaScript
- Finding unique string in an array in JavaScript
- Finding missing element in an array of numbers in JavaScript
- Finding desired sum of elements in an array in JavaScript
- Finding matching pair from an array in JavaScript
- Finding confusing number within an array in JavaScript

Advertisements