문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
정렬된 고유한 정수 배열 nums가 주어진다.
범위 [a, b]는 a부터 b까지(포함) 모든 정수이다.
배열의 모든 숫자를 정확히 포함하는 범위의 가장 작은 정렬된 목록을 반환한다. 즉, nums의 각 요소는 범위 중 하나에만 포함되며, x가 범위 중 하나에만 포함되고 nums에는 포함되지 않는 정수 x는 존재하지 않는다.
목록의 각 범위 [a, b]는 다음과 같이 출력되어야 한다.
#1
Input: nums = [0, 1, 2, 4, 5, 7]
Output: ["0->2", "4->5", "7"]
#2
Input: nums = [0, 2, 3, 4, 6, 8, 9]
Output: ["0", "2->4", "6", "8->9"]
class Solution {
public List<String> summaryRanges(int[] nums) {
List<String> result = new ArrayList<>();
if(nums.length == 0) return result;
int start = nums[0];
for(int i = 1; i <= nums.length; i++){
if(i == nums.length || nums[i] != nums[i - 1] + 1){
if(start == nums[i - 1]){
result.add(String.valueOf(start));
}else{
result.add(start + "->" + nums[i - 1]);
}
if(i < nums.length) start = nums[i];
}
}
return result;
}
}