Quick actions

cmd+k|ctrl+k

Navigation

Languages

Array degree

Snippet info

Language

JavaScript

Visibility

public

Author

vladimir.kazansky

Created

2018-02-23T08:53:46Z

Updated

2018-02-23T08:53:46Z

const ar = [1, 2, 2, 3, 1];


const counts = {};
let degree = 0;
for (let i = 0; i < ar.length; i += 1) {
    const key = String(ar[i]);
    if (counts[key]) {
        counts[key].to = i;
        counts[key].count += 1;
    } else {
        counts[key]= {};
        counts[key].from = i;
        counts[key].to = i;
        counts[key].count = 1;
    }
    degree = Math.max(degree, counts[key].count);
}

let result = Number.MAX_VALUE;
Object.keys(counts).forEach((k) => {
    if (counts[k].count === degree) {
        result = Math.min(result, counts[k].to - counts[k].from + 1);
    }
});

console.log(counts);
console.log("Degree:", degree);
console.log("Answer:", result);
INFO