首页 > 代码库 > Leetcode-Missing Ranges
Leetcode-Missing Ranges
Given a sorted integer array where the range of elements are [lower, upper] inclusive, return its missing ranges.
For example, given [0, 1, 3, 50, 75]
, lower = 0 and upper = 99, return ["2", "4->49", "51->74", "76->99"].
Solution:
1 public class Solution { 2 public List<String> findMissingRanges(int[] A, int lower, int upper) { 3 //for a range lower-upper, and a number A[i], we have conditions: 4 //1. A[i]<lower: move to i+1; 5 //2. A[i]==lower: lower -> A[i]+1 6 //3. lower<A[i]<=upper: generate a range: lower->A[i]-1; lower becomes A[i]+1. NOTE A[i]==upper: end of the program. 7 //4. A[i]>upper: get range: lower->upper, end of the problem. 8 9 List<String> res = new ArrayList<String>();10 11 for (int i=0;i<A.length;i++){12 if (A[i]<lower) continue;13 14 if (A[i]==lower){15 lower=A[i]+1;16 continue;17 }18 19 if (A[i]>lower && A[i]<=upper){20 String range = "";21 if (lower!=A[i]-1) range = Integer.toString(lower)+"->"+Integer.toString(A[i]-1);22 else range = Integer.toString(lower);23 res.add(range);24 lower = A[i]+1;25 if (A[i]==upper) break;26 else continue;27 }28 29 if (A[i]>upper){30 String range = "";31 if (lower!=upper) range = Integer.toString(lower)+"->"+Integer.toString(upper);32 else range = Integer.toString(lower);33 res.add(range);34 lower = A[i]+1;35 break;36 }37 }38 39 if (lower<=upper){40 String range = "";41 if (lower!=upper) range = Integer.toString(lower)+"->"+Integer.toString(upper);42 else range = Integer.toString(lower);43 res.add(range);44 }45 46 return res;47 }48 }
Leetcode-Missing Ranges
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。