Đề bài · thuật toán dễ 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.
Khai báo hàm
/**
* @param {number[]} nums
* @returns {string[]}
*/
function summary_ranges(nums)Ví dụ
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([]) // -> []Kèm theo 5 test ẩn và 2 test dữ liệu lớn có giới hạn thời gian; dữ liệu đầu vào không được hiển thị. Đề bài được giao cho các mô hình bằng tiếng Anh.
#1DeepSeek V4 Pro 0423chưa giải được · 9/10 testtrả lời trong 8.9 giây · thời gian chạy 2.6 giây · $0.0007 ✓ summary_ranges([0, 1, 2, 4, 5, 7])kỳ vọng ["0->2", "4->5", "7"] 2 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])kỳ vọng ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])kỳ vọng [] 1 ms ✓ 1 ms✓ 1 ms✓ <1 ms✓ 1 ms✓ 1 ms⏱ quá giới hạn thời gian⏱ 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; }Lần thử thứ hai
chưa giải được · 9/10 testtrả lời trong 5.6 giây · $0.0009Mô hình đã thấy số lượng bài test bị trượt, các ví dụ lỗi kèm giá trị kỳ vọng và kết quả trả về, cùng với lý do các bài test ẩn bị trượt (không hiển thị dữ liệu đầu vào). Kết quả này không tính vào thứ hạng hay điểm đánh giá.
✓ summary_ranges([0, 1, 2, 4, 5, 7])kỳ vọng ["0->2", "4->5", "7"] 2 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])kỳ vọng ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])kỳ vọng [] <1 ms ✓ <1 ms✓ 1 ms✓ <1 ms✓ <1 ms✓ <1 ms⏱ quá giới hạn thời gian⏱ 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 Terrachưa giải được · 9/10 testtrả lời trong 2.2 giây · thời gian chạy 2.6 giây · $0.0009 ✓ summary_ranges([0, 1, 2, 4, 5, 7])kỳ vọng ["0->2", "4->5", "7"] 3 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])kỳ vọng ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])kỳ vọng [] <1 ms ✓ <1 ms✓ 1 ms✓ <1 ms✓ 6 ms✓ 1 ms⏱ quá giới hạn thời gian⏱ 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; }Lần thử thứ hai
chưa giải được · 9/10 testtrả lời trong 2.8 giây · $0.0012Mô hình đã thấy số lượng bài test bị trượt, các ví dụ lỗi kèm giá trị kỳ vọng và kết quả trả về, cùng với lý do các bài test ẩn bị trượt (không hiển thị dữ liệu đầu vào). Kết quả này không tính vào thứ hạng hay điểm đánh giá.
✓ summary_ranges([0, 1, 2, 4, 5, 7])kỳ vọng ["0->2", "4->5", "7"] 1 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])kỳ vọng ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])kỳ vọng [] <1 ms ✓ <1 ms✓ 1 ms✓ 1 ms✓ <1 ms✓ 1 ms⏱ quá giới hạn thời gian⏱ 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)chưa giải được · 9/10 testtrả lời trong 7.6 giây · thời gian chạy 2.6 giây · $0.0026 ✓ summary_ranges([0, 1, 2, 4, 5, 7])kỳ vọng ["0->2", "4->5", "7"] 1 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])kỳ vọng ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])kỳ vọng [] 1 ms ✓ 3 ms✓ 1 ms✓ 1 ms✓ 26 ms✓ 1 ms⏱ quá giới hạn thời gian⏱ 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; }Lần thử thứ hai
chưa giải được · 9/10 testtrả lời trong 9.5 giây · $0.0039Mô hình đã thấy số lượng bài test bị trượt, các ví dụ lỗi kèm giá trị kỳ vọng và kết quả trả về, cùng với lý do các bài test ẩn bị trượt (không hiển thị dữ liệu đầu vào). Kết quả này không tính vào thứ hạng hay điểm đánh giá.
✓ summary_ranges([0, 1, 2, 4, 5, 7])kỳ vọng ["0->2", "4->5", "7"] 3 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])kỳ vọng ["0", "2->4", "6", "8->9"] 1 ms ✓ summary_ranges([])kỳ vọng [] <1 ms ✓ <1 ms✓ <1 ms✓ <1 ms✓ 4 ms✓ 1 ms⏱ quá giới hạn thời gian⏱ 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 2512chưa giải được · 9/10 testtrả lời trong 1.2 giây · thời gian chạy 2.7 giây · $0.0005 ✓ summary_ranges([0, 1, 2, 4, 5, 7])kỳ vọng ["0->2", "4->5", "7"] 2 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])kỳ vọng ["0", "2->4", "6", "8->9"] 2 ms ✓ summary_ranges([])kỳ vọng [] <1 ms ✓ <1 ms✓ 1 ms✓ 35 ms✓ <1 ms✓ <1 ms⏱ quá giới hạn thời gian⏱ 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; }Lần thử thứ hai
chưa giải được · 9/10 testtrả lời trong 1.1 giây · $0.0005Mô hình đã thấy số lượng bài test bị trượt, các ví dụ lỗi kèm giá trị kỳ vọng và kết quả trả về, cùng với lý do các bài test ẩn bị trượt (không hiển thị dữ liệu đầu vào). Kết quả này không tính vào thứ hạng hay điểm đánh giá.
✓ summary_ranges([0, 1, 2, 4, 5, 7])kỳ vọng ["0->2", "4->5", "7"] 2 ms ✓ summary_ranges([0, 2, 3, 4, 6, 8, 9])kỳ vọng ["0", "2->4", "6", "8->9"] <1 ms ✓ summary_ranges([])kỳ vọng [] <1 ms ✓ 5 ms✓ 31 ms✓ 1 ms✓ 2 ms✓ 4 ms⏱ quá giới hạn thời gian⏱ 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; }
Chi phí token: $0.01 · Cách thức thi đấu và tính điểm →