summaryRanges
T: O(n)
S: OI(1)
class Solution {
    public List<String> summaryRanges(int[] nums) {
        List<String> res = new ArrayList<>();
        int n = nums.length;
        if (nums == null || n == 0) {
            return res;
        }
        
        for (int i = 0; i < n; i++) {
            int start = nums[i];
            while (i < n-1 && nums[i]+1 == nums[i+1]) {
                i++;
            }
            if (start == nums[i]) {
                res.add(String.valueOf(start));
            } else {
                res.add(start + "->" + nums[i]);
            }
        }
        return res;
    }
}
/*
use two pointers, T: O(n), S: O(1)
start = nums[i];
while (i < n-1 && nums[i]+1 == nums[i+1]) {
    i++;
}
if ()
s.  i 
0 1 2 4 5 7
0->2
      s i
0 1 2 4 5 7
4 -> 5
          i
          s
0 1 2 4 5 7
7
*/Last updated
Was this helpful?