本文共 1714 字,大约阅读时间需要 5 分钟。
原因,nums的range起始位置忘记用hashTable变换
class Solution {public: vectorsummaryRanges(vector & nums) { vector ret; stringstream ss; vector hashT; if (nums.size() == 0) return ret; if (nums.size() == 1){ ss.str(""); ss << nums[0]; ret.push_back(ss.str()); return ret; } hashT.push_back(0); for (int i = 1; i < nums.size(); ++i){ if (nums[i] - nums[i-1] == 1) continue; hashT.push_back(i); } hashT.push_back(nums.size()); //2 is the least length of hashTable int startIndex = hashT[0]; int endIndex = -1; for (int i = 1; i < hashT.size(); ++i){ endIndex = hashT[i]; int start = nums[startIndex]; int end = nums[endIndex-1]; if (start == end){ ss.str(""); ss << start; ret.push_back(ss.str()); }else{ ss.str(""); ss << start << "->" << end; ret.push_back(ss.str()); } startIndex = endIndex; } return ret; }};
转载地址:http://gcpbb.baihongyu.com/