Défi · algorithmes facile JavaScript ·
Summary ranges
Given a sorted list of distinct integers, summarize it as consecutive ranges. A range of several numbers is written "a->b", a single number as "a". Return the ranges in order.
Signature
/**
* @param {number[]} nums
* @returns {string[]}
*/
function summary_ranges(nums)Exemples
summary_ranges([0, 1, 2, 4, 5, 7]) // -> ["0->2", "4->5", "7"]
summary_ranges([0, 2, 3, 4, 6, 8, 9]) // -> ["0", "2->4", "6", "8->9"]
summary_ranges([]) // -> []Plus 5 tests masqués et 2 tests de performance sous contrainte de temps ; leurs entrées ne sont pas affichées. Les défis sont soumis aux modèles en anglais.
#1DeepSeek V4 Pro 0423non résolu · 9 sur 10 testsréponse en 8.9 s · exécution 2.6 s · $0.0007 ✓ summary_ranges([0, 1, 2, 4, 5, 7])attendu ["0->2", "4->5", "7"] 2 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])attendu ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])attendu [] 1 ms ✓ 1 ms✓ 1 ms✓ <1 ms✓ 1 ms✓ 1 ms⏱ délai limite dépassé⏱ 95 msCode
/** * @param {number[]} nums * @returns {string[]} */ function summary_ranges(nums) { const result = []; const n = nums.length; if (n === 0) return result; let start = nums[0]; let prev = start; for (let i = 1; i < n; i++) { if (nums[i] === prev + 1) { prev = nums[i]; } else { result.push(start === prev ? `${start}` : `${start}->${prev}`); start = nums[i]; prev = start; } } result.push(start === prev ? `${start}` : `${start}->${prev}`); return result; }Second essai
non résolu · 9 sur 10 testsréponse en 5.6 s · $0.0009Le modèle a eu accès au nombre de tests échoués, aux exemples en échec avec les valeurs attendues et obtenues, ainsi qu'au motif d'échec des tests cachés (sans leurs entrées). Ne compte ni pour le classement ni pour l'évaluation.
✓ summary_ranges([0, 1, 2, 4, 5, 7])attendu ["0->2", "4->5", "7"] 2 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])attendu ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])attendu [] <1 ms ✓ <1 ms✓ 1 ms✓ <1 ms✓ <1 ms✓ <1 ms⏱ délai limite dépassé⏱ 130 msCode
/** * @param {number[]} nums * @returns {string[]} */ function summary_ranges(nums) { const result = []; const n = nums.length; if (n === 0) return result; let i = 0; while (i < n) { let start = nums[i]; let j = i + 1; while (j < n && nums[j] === nums[j-1] + 1) { j++; } let end = nums[j-1]; if (start === end) { result.push(start.toString()); } else { result.push(start + "->" + end); } i = j; } return result; }#1OpenAI GPT-6.1 Terranon résolu · 9 sur 10 testsréponse en 2.2 s · exécution 2.6 s · $0.0009 ✓ summary_ranges([0, 1, 2, 4, 5, 7])attendu ["0->2", "4->5", "7"] 3 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])attendu ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])attendu [] <1 ms ✓ <1 ms✓ 1 ms✓ <1 ms✓ 6 ms✓ 1 ms⏱ délai limite dépassé⏱ 105 msCode
function summary_ranges(nums) { const result = []; const n = nums.length; let i = 0; while (i < n) { const start = nums[i]; let end = start; i++; while (i < n && nums[i] - end === 1) { end = nums[i++]; } result.push(start === end ? String(start) : `${start}->${end}`); } return result; }Second essai
non résolu · 9 sur 10 testsréponse en 2.8 s · $0.0012Le modèle a eu accès au nombre de tests échoués, aux exemples en échec avec les valeurs attendues et obtenues, ainsi qu'au motif d'échec des tests cachés (sans leurs entrées). Ne compte ni pour le classement ni pour l'évaluation.
✓ summary_ranges([0, 1, 2, 4, 5, 7])attendu ["0->2", "4->5", "7"] 1 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])attendu ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])attendu [] <1 ms ✓ <1 ms✓ 1 ms✓ 1 ms✓ <1 ms✓ 1 ms⏱ délai limite dépassé⏱ 127 msCode
function summary_ranges(nums) { const n = nums.length; if (n === 0) return []; const result = []; let start = nums[0]; let prev = start; for (let i = 1; i < n; i++) { const value = nums[i]; if (value - prev !== 1) { result.push(start === prev ? String(start) : start + "->" + prev); start = value; } prev = value; } result.push(start === prev ? String(start) : start + "->" + prev); return result; }#1Qwen3.8 Max (0902)non résolu · 9 sur 10 testsréponse en 7.6 s · exécution 2.6 s · $0.0026 ✓ summary_ranges([0, 1, 2, 4, 5, 7])attendu ["0->2", "4->5", "7"] 1 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])attendu ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])attendu [] 1 ms ✓ 3 ms✓ 1 ms✓ 1 ms✓ 26 ms✓ 1 ms⏱ délai limite dépassé⏱ 97 msCode
function summary_ranges(nums) { if (nums.length === 0) return []; const result = []; let start = nums[0]; let prev = nums[0]; for (let i = 1; i <= nums.length; i++) { if (i === nums.length || nums[i] !== prev + 1) { if (start === prev) { result.push(String(start)); } else { result.push(start + "->" + prev); } if (i < nums.length) { start = nums[i]; prev = nums[i]; } } else { prev = nums[i]; } } return result; }Second essai
non résolu · 9 sur 10 testsréponse en 9.5 s · $0.0039Le modèle a eu accès au nombre de tests échoués, aux exemples en échec avec les valeurs attendues et obtenues, ainsi qu'au motif d'échec des tests cachés (sans leurs entrées). Ne compte ni pour le classement ni pour l'évaluation.
✓ summary_ranges([0, 1, 2, 4, 5, 7])attendu ["0->2", "4->5", "7"] 3 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])attendu ["0", "2->4", "6", "8->9"] 1 ms ✓ summary_ranges([])attendu [] <1 ms ✓ <1 ms✓ <1 ms✓ <1 ms✓ 4 ms✓ 1 ms⏱ délai limite dépassé⏱ 118 msCode
function summary_ranges(nums) { const n = nums.length; if (n === 0) return []; const result = []; let i = 0; while (i < n) { let j = i; while (j + 1 < n && nums[j + 1] === nums[j] + 1) { j++; } if (i === j) { result.push(String(nums[i])); } else { result.push(nums[i] + "->" + nums[j]); } i = j + 1; } return result; }#1Mistral Devstral 2 2512non résolu · 9 sur 10 testsréponse en 1.2 s · exécution 2.7 s · $0.0005 ✓ summary_ranges([0, 1, 2, 4, 5, 7])attendu ["0->2", "4->5", "7"] 2 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])attendu ["0", "2->4", "6", "8->9"] 2 ms ✓ summary_ranges([])attendu [] <1 ms ✓ <1 ms✓ 1 ms✓ 35 ms✓ <1 ms✓ <1 ms⏱ délai limite dépassé⏱ 134 msCode
function summary_ranges(nums) { if (nums.length === 0) return []; const ranges = []; let start = nums[0]; for (let i = 1; i < nums.length; i++) { if (nums[i] !== nums[i - 1] + 1) { if (start === nums[i - 1]) { ranges.push(start.toString()); } else { ranges.push(start + '->' + nums[i - 1]); } start = nums[i]; } } if (start === nums[nums.length - 1]) { ranges.push(start.toString()); } else { ranges.push(start + '->' + nums[nums.length - 1]); } return ranges; }Second essai
non résolu · 9 sur 10 testsréponse en 1.1 s · $0.0005Le modèle a eu accès au nombre de tests échoués, aux exemples en échec avec les valeurs attendues et obtenues, ainsi qu'au motif d'échec des tests cachés (sans leurs entrées). Ne compte ni pour le classement ni pour l'évaluation.
✓ summary_ranges([0, 1, 2, 4, 5, 7])attendu ["0->2", "4->5", "7"] 2 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])attendu ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])attendu [] <1 ms ✓ 5 ms✓ 31 ms✓ 1 ms✓ 2 ms✓ 4 ms⏱ délai limite dépassé⏱ 134 msCode
function summary_ranges(nums) { const ranges = []; let start = nums[0]; for (let i = 1; i <= nums.length; i++) { if (i === nums.length || nums[i] !== nums[i - 1] + 1) { ranges.push(start === nums[i - 1] ? start.toString() : start + '->' + nums[i - 1]); if (i < nums.length) start = nums[i]; } } return ranges; }
Coût en jetons: $0.01 · Déroulement et calcul des scores →