228-Summary-Ranges
0x0 题目详情
0x1 解题思路
0x2 代码实现
class Solution {
public List<String> summaryRanges(int[] nums) {
List<String> result=new ArrayList<>();
if(nums==null || nums.length==0){
return result;
}
if(nums.length==1){
result.add(String.valueOf(nums[0]));
return result;
}
int left=0;
int right=0;
int cur=0;
while(cur<nums.length){
//转成long是必须的,因为当cur=right且nums[cur]=2147483647时,nums[cur]+1=-1,这样cur永远也不会更新,导致死循环
while(cur<nums.length && ((long)nums[cur]<=(long)nums[right]+1)){
right=cur;
cur++;
}
if(left==right){
result.add(String.valueOf(nums[left]));
}else{
result.add(String.valueOf(nums[left])+"->"+String.valueOf(nums[right]));
}
left=right=cur;
}
return result;
}
}0x3 课后总结
Last updated