समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो "घंटे:मिनट" प्रारूप में 24-घंटे की घड़ी के समय बिंदुओं की एक सरणी लेता है। हमारे फ़ंक्शन को सरणी में किन्हीं दो समय बिंदुओं के बीच न्यूनतम मिनट अंतर ढूंढना चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr = ["23:59", "00:00"];
तो आउटपुट होना चाहिए -
const output = 1;
क्योंकि समयों के बीच न्यूनतम अंतर 1 मिनट है।
उदाहरण
निम्नलिखित कोड है -
const arr = ["23:59", "00:00"];
const findMinDifference = (arr = []) => {
const find = (str = '') => str.split(':').map(time => parseInt(time, 10));
const mapped = arr.map((time) => {
const [hour1, minute1] = find(time);
return hour1 * 60 + minute1;
});
const sorted = [];
let isrepeating = false;
mapped.forEach((time) => {
if (sorted[time] !== undefined || sorted[time + 24 * 60] !== undefined) {
isrepeating = true;
}
sorted[time] = time;
sorted[time + 24 * 60] = time + 24 * 60;
});
if (isrepeating) {
return 0;
}
let min = Infinity;
let prev = null;
for (let i = 0; i < sorted.length; i++) {
if (sorted[i] !== undefined) {
if (prev) {
min = Math.min(min, sorted[i] - prev);
}
prev = sorted[i];
}
}
return min;
};
console.log(findMinDifference(arr));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
1