LeetCode:Summary interval [228]
Title Description
Given an array of ordered integers without repeating elements, returns the sum of the array interval ranges.
Example 1:
Input: [0,1,2,4,5,7] Output: ["0->2","4->5","7"] Explanation:0,1,2 It can form a continuous interval, and 4,5 can form a continuous interval.
Example 2:
Input: [0,2,3,4,6,8,9] Output: ["0","2->4","6","8->9"] Explanation:2,3,4 It can form a continuous interval, and 8,9 can form a continuous interval.
Topic analysis
JavaAn explanation
class Solution { public List<String> summaryRanges(int[] nums) { List<String> ans = new ArrayList<>(); if(nums.length<1) return ans; int len = nums.length; int[] dp = new int[len]; dp[0]=1; for(int i=1;i<len;i++) { if(nums[i]==nums[i-1]+1) dp[i]=dp[i-1]+1; else dp[i]=1; } int ptr = 0 ; while(ptr<len) { int start = nums[ptr++]; String s =start+"->"; while(ptr<len&&dp[ptr]!=1) ptr++; ptr--; int end = nums[ptr++]; if(start==end) s=""+start; else s+=end; ans.add(s); } return ans; } }