Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //非常恶心的一道题。。 错了好多次
- class Solution {
- public List<String> findMissingRanges(int[] nums, int lower, int upper) {
- List<String> list = new ArrayList<>();
- int n = nums.length;
- if(n < 1)
- {
- // from lower to upper range -> inclusive are not covered
- String str = toStr(lower, upper);
- if(str != null) list.add(str);
- return list;
- }
- if(lower < nums[0])
- {
- String str = toStr(lower, nums[0] - 1);
- if(str != null) list.add(str);
- }
- for(int i = 0; i < n - 1; i++)
- {
- int a = nums[i], b = nums[i + 1];
- if(a == b || a + 1 >= b) continue;
- String str = toStr(a + 1, b - 1);
- if(str != null) list.add(str);
- }
- if(nums[n - 1] < upper)
- {
- String str = toStr(nums[n - 1] + 1, upper);
- if(str != null) list.add(str);
- }
- return list;
- }
- String toStr(int a, int b)
- {
- if(a > b) return null;
- if(a == b) return "" + a;
- return "" + a + "->" + b;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement