auto-generated entry for Summary Ranges. the solution files are available below.
solution files
- C++
summary-ranges/synced-solution.cpp - Python
summary-ranges/synced-solution.py - TypeScript
summary-ranges/synced-solution.ts
Collected C++, Python, TypeScript solutions for summary ranges. Add a dedicated write-up later if you want deeper notes.
auto-generated entry for Summary Ranges. the solution files are available below.
summary-ranges/synced-solution.cppsummary-ranges/synced-solution.pysummary-ranges/synced-solution.tsdef summaryRanges(nums: list[int]) -> list[str]:
result = []
i = class="syntax-number">0
while i < len(nums):
start = nums[i]
while i + class="syntax-number">1 < len(nums) and nums[i + class="syntax-number">1] == nums[i] + class="syntax-number">1:
i += class="syntax-number">1
end = nums[i]
if start == end:
result.append(str(start))
else:
result.append(fclass="syntax-string">"{start}->{end}")
i += class="syntax-number">1
return result
class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
vector<string> result;
int i = class="syntax-number">0;
while (i < nums.size()) {
long long start = nums[i];
while (i + class="syntax-number">1 < nums.size() && (long long)nums[i + class="syntax-number">1] == nums[i] + class="syntax-number">1) {
i++;
}
long long end = nums[i];
if (start == end) {
result.push_back(to_string(start));
} else {
result.push_back(to_string(start) + class="syntax-string">"->" + to_string(end));
}
i++;
}
return result;
}
};
function summaryRanges(nums: number[]): string[] {
const result: string[] = [];
let i = class="syntax-number">0;
while (i < nums.length) {
const start = nums[i];
while (i + class="syntax-number">1 < nums.length && nums[i + class="syntax-number">1] === nums[i] + class="syntax-number">1) {
i++;
}
const end = nums[i];
if (start === end) {
result.push(String(start));
} else {
result.push(`${start}->${end}`);
}
i++;
}
return result;
}