//C++ class Solution { public: vector<string> summaryRanges(vector<int>& nums) { vector<string> ret; int i = 0; int n = nums.size(); while (i < n) { int low = i; i++; while (i < n && nums[i] == nums[i - 1] + 1) { i++; } int high = i - 1; string temp = to_string(nums[low]); if (low < high) { temp.append("->"); temp.append(to_string(nums[high])); } ret.push_back(move(temp)); } return ret; } };
//Java class Solution { public List<String> summaryRanges(int[] nums) { List<String> ret = new ArrayList<String>(); int i = 0; int n = nums.length; while (i < n) { int low = i; i++; while (i < n && nums[i] == nums[i - 1] + 1) { i++; } int high = i - 1; StringBuffer temp = new StringBuffer(Integer.toString(nums[low])); if (low < high) { temp.append("->"); temp.append(Integer.toString(nums[high])); } ret.add(temp.toString()); } return ret; } }