import java.util.ArrayList;
import java.util.List;
public class MissingRanges {
public static void main(String[] args) {
int[] nums = { 2, 3, 5, 50, 75 };
int lower = 0, upper = 99;
System.out.println(solve(nums, lower, upper));
}
public static List<String> solve(int[] nums, int lower, int upper) {
ArrayList<String> list = new ArrayList<>();
if (lower < nums[0]) {
list.add(makeRange(lower, nums[0] - 1));
}
for (int i = 0; i < nums.length - 1; i++) {
if (nums[i] + 1 != nums[i + 1]) {
list.add(makeRange(nums[i] + 1, nums[i + 1] - 1));
}
// if(nums[i]+1 < nums[i+1] && nums[i]!=nums[i+1]) {
// list.add(makeRange(nums[i]+1,nums[i+1]-1));
// }
}
if (nums[nums.length - 1] < upper) {
list.add(makeRange(nums[nums.length - 1] + 1, upper));
}
return list;
}
public static String makeRange(int low, int high) {
return low == high ? String.valueOf(low) : (low + "->" + high);
}
}
문제
Given a sorted integer array nums, where the range of elements are int the inclusive range [lower, upper], return its missing ranges.
exmple
int[] nums = {2,3,5,50,75};
int lower =0, upper =99;
result
[0->1, 4, 6->49, 51->74, 76->99]
'Algorithm by java' 카테고리의 다른 글
프로그래머스 Level2 스킬트리 JAVA (0) | 2020.07.05 |
---|---|
프로그래머스 2019 카카오 개발자 겨울 인턴십 크레인 인형뽑기 게임 JAVA (0) | 2020.07.02 |
[알고리즘] Find All Anagrams in a String (java 풀이) leetcode (0) | 2020.06.18 |
[알고리즘] meeting Room2 (java 풀이) (0) | 2020.06.11 |
[알고리즘] merge-intervals (java 풀이) (0) | 2020.06.09 |