Opdracht · algoritmen makkelijk 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.
Signatuur
/**
* @param {number[]} nums
* @returns {string[]}
*/
function summary_ranges(nums)Voorbeelden
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 verborgen tests en 2 prestatietests met grote invoer onder een tijdslimiet; de invoer hiervan is niet zichtbaar. Opdrachten worden in het Engels aan de modellen voorgelegd.
#1DeepSeek V4 Pro 0423niet opgelost · 9 van 10 testsantwoord in 8.9 s · looptijd 2.6 s · $0.0007 ✓ summary_ranges([0, 1, 2, 4, 5, 7])verwacht ["0->2", "4->5", "7"] 2 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])verwacht ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])verwacht [] 1 ms ✓ 1 ms✓ 1 ms✓ <1 ms✓ 1 ms✓ 1 ms⏱ tijdslimiet overschreden⏱ 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; }Tweede poging
niet opgelost · 9 van 10 testsantwoord in 5.6 s · $0.0009Het model zag hoeveel tests er faalden, de mislukte voorbeelden met de verwachte en geretourneerde waarden, en alleen waarom verborgen tests faalden, niet hun inputs. Telt niet mee voor de eindstand of rating.
✓ summary_ranges([0, 1, 2, 4, 5, 7])verwacht ["0->2", "4->5", "7"] 2 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])verwacht ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])verwacht [] <1 ms ✓ <1 ms✓ 1 ms✓ <1 ms✓ <1 ms✓ <1 ms⏱ tijdslimiet overschreden⏱ 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 Terraniet opgelost · 9 van 10 testsantwoord in 2.2 s · looptijd 2.6 s · $0.0009 ✓ summary_ranges([0, 1, 2, 4, 5, 7])verwacht ["0->2", "4->5", "7"] 3 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])verwacht ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])verwacht [] <1 ms ✓ <1 ms✓ 1 ms✓ <1 ms✓ 6 ms✓ 1 ms⏱ tijdslimiet overschreden⏱ 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; }Tweede poging
niet opgelost · 9 van 10 testsantwoord in 2.8 s · $0.0012Het model zag hoeveel tests er faalden, de mislukte voorbeelden met de verwachte en geretourneerde waarden, en alleen waarom verborgen tests faalden, niet hun inputs. Telt niet mee voor de eindstand of rating.
✓ summary_ranges([0, 1, 2, 4, 5, 7])verwacht ["0->2", "4->5", "7"] 1 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])verwacht ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])verwacht [] <1 ms ✓ <1 ms✓ 1 ms✓ 1 ms✓ <1 ms✓ 1 ms⏱ tijdslimiet overschreden⏱ 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)niet opgelost · 9 van 10 testsantwoord in 7.6 s · looptijd 2.6 s · $0.0026 ✓ summary_ranges([0, 1, 2, 4, 5, 7])verwacht ["0->2", "4->5", "7"] 1 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])verwacht ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])verwacht [] 1 ms ✓ 3 ms✓ 1 ms✓ 1 ms✓ 26 ms✓ 1 ms⏱ tijdslimiet overschreden⏱ 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; }Tweede poging
niet opgelost · 9 van 10 testsantwoord in 9.5 s · $0.0039Het model zag hoeveel tests er faalden, de mislukte voorbeelden met de verwachte en geretourneerde waarden, en alleen waarom verborgen tests faalden, niet hun inputs. Telt niet mee voor de eindstand of rating.
✓ summary_ranges([0, 1, 2, 4, 5, 7])verwacht ["0->2", "4->5", "7"] 3 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])verwacht ["0", "2->4", "6", "8->9"] 1 ms ✓ summary_ranges([])verwacht [] <1 ms ✓ <1 ms✓ <1 ms✓ <1 ms✓ 4 ms✓ 1 ms⏱ tijdslimiet overschreden⏱ 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 2512niet opgelost · 9 van 10 testsantwoord in 1.2 s · looptijd 2.7 s · $0.0005 ✓ summary_ranges([0, 1, 2, 4, 5, 7])verwacht ["0->2", "4->5", "7"] 2 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])verwacht ["0", "2->4", "6", "8->9"] 2 ms ✓ summary_ranges([])verwacht [] <1 ms ✓ <1 ms✓ 1 ms✓ 35 ms✓ <1 ms✓ <1 ms⏱ tijdslimiet overschreden⏱ 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; }Tweede poging
niet opgelost · 9 van 10 testsantwoord in 1.1 s · $0.0005Het model zag hoeveel tests er faalden, de mislukte voorbeelden met de verwachte en geretourneerde waarden, en alleen waarom verborgen tests faalden, niet hun inputs. Telt niet mee voor de eindstand of rating.
✓ summary_ranges([0, 1, 2, 4, 5, 7])verwacht ["0->2", "4->5", "7"] 2 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])verwacht ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])verwacht [] <1 ms ✓ 5 ms✓ 31 ms✓ 1 ms✓ 2 ms✓ 4 ms⏱ tijdslimiet overschreden⏱ 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; }
Tokenkosten: $0.01 · Hoe rondes verlopen en worden beoordeeld →