首页 > 学院 > 开发设计 > 正文

228. Summary Ranges

2019-11-08 00:44:32
字体:
来源:转载
供稿:网友

题目

Given a sorted integer array without duplicates, return the summary of its ranges.

For example, given [0,1,2,4,5,7], return [“0->2”,”4->5”,”7”].

Credits: Special thanks to @jianchao.li.fighter for adding this PRoblem and creating all test cases.

Subscribe to see which companies asked this question.


思路

入参保证sorted,遍历数组,求出一段连续的就存到返回值中,尤其注意begin和end为同一个数和最后一个字符串的场景


代码

class Solution {public: void insertString(vector<string> &result,int beginNum,int endNum) { if(beginNum == endNum) { result.push_back(to_string(beginNum)); } else { //连续的字符串 result.push_back(to_string(beginNum)+"->"+to_string(endNum)); } } vector<string> summaryRanges(vector<int>& nums) { //用例保证入参sorted int beginNum; int endNum; int curNum; vector<string> result; size_t length = nums.size(); string str; if(length == 0) { return result; } beginNum = curNum = endNum = nums[0]; for(size_t i=1;i<length;i++) { if(nums[i] - curNum == 1) { endNum = nums[i]; curNum = nums[i]; continue; } else { insertString(result,beginNum,endNum); beginNum = curNum = endNum = nums[i]; } } //最后,看是否要插入最后的字符串 insertString(result,beginNum,endNum); return result; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表