我的LeetCode代码仓:https://github.com/617076674/LeetCode
原题链接:https://leetcode-cn.com/problems/summary-ranges/description/
题目描述:
知识点:数组
思路:根据左端点寻找其右端点即可
时间复杂度和空间复杂度均是O(n),其中n为数组的长度。
JAVA代码:
public class Solution {
public List<String> summaryRanges(int[] nums) {
List<String> result = new ArrayList<>();
if(nums.length == 0){
return result;
}
int left = 0;
for (int i = 0; i < nums.length; i++) {
if(i + 1 < nums.length && nums[i + 1] - 1 > nums[i]){
if(i - left == 0){
result.add(String.valueOf(nums[i]));
}else{
result.add(nums[left] + "->" + nums[i]);
}
left = i + 1;
}
}
if(left == nums.length - 1){
result.add(String.valueOf(nums[left]));
}else{
result.add(nums[left] + "->" + nums[nums.length - 1]);
}
return result;
}
}
LeetCode解题报告: