LeetCode(228) Summary Ranges
来源:互联网 发布:js三大家族 编辑:程序博客网 时间:2024/06/01 19:38
题目
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”].
分析
题目要求很明显,要求对给定的一组有序整数序列按照连续性分组显示;
一次遍历记录连续子序列的首尾元素,然后转换为string格式,整数和字符串格式类型转换需要特别注意INT_MIN时特殊处理;
AC代码
class Solution {public: vector<string> summaryRanges(vector<int>& nums) { if (nums.empty()) return vector<string>(); int sz = nums.size(); vector<string> ret; int start = nums[0], end = nums[0]; for (int i = 1; i < sz; ++i) { if (nums[i] == end + 1) end = nums[i]; else{ string tmp; if (end == start) tmp = IntToString(start); else tmp = IntToString(start) + "->" + IntToString(end); ret.push_back(tmp); start = nums[i]; end = nums[i]; } }//for //加上最后一组 string tmp; if (end == start) tmp = IntToString(start); else tmp = IntToString(start) + "->" + IntToString(end); ret.push_back(tmp); return ret; } string IntToString(long num) { if (num == 0) return "0"; else if (num == INT_MIN) return "-2147483648"; string str; bool flag = num < 0 ? false : true; num = abs(num); while (num) { char c = num % 10 + '0'; num /= 10; str += c; }//while reverse(str.begin(), str.end()); if (flag) return str; else return "-" + str; }};
GitHub测试程序源码
0 0
- LeetCode(228) Summary Ranges
- leetcode 228: Summary Ranges
- Leetcode 228 Summary Ranges
- LeetCode 228: Summary Ranges
- Summary Ranges - LeetCode 228
- leetcode[228]:Summary Ranges
- leetcode 228:Summary Ranges
- Summary Ranges(leetcode 228)
- Leetcode #228 Summary Ranges
- leetCode #228 Summary Ranges
- leetcode 228: Summary Ranges
- [Leetcode]#228 Summary Ranges
- Leetcode 228 Summary Ranges
- [LeetCode 228] Summary Ranges
- 【LeetCode】228 Summary Ranges
- LeetCode 228 Summary Ranges
- [leetcode 228] Summary Ranges
- 【LEETCODE】228-Summary Ranges
- 仿微信 发起群聊 类似样式
- Eclipse常用快捷键记录
- ACM退役贴
- 编程常见单词整理
- eclipse快捷键
- LeetCode(228) Summary Ranges
- 使用的主要开源技术
- 成熟是什么
- 对 Linux 初级、中级、高级用户非常有用的 60 个命令
- unsafe 库使用小结
- 工厂模式
- JavaEE_JavaScript__前台(Jsp页面) + 后台数据处理(Servlet),与javaScript的过程的处理
- JScrollPane控件中添加其他控件的问题&&JScrollPane设置滚动条&&调整滚动速度
- VC++向txt文件中写入字符串