【LeetCode】228. 彙總區間 結題報告 (C++)
阿新 • • 發佈:2018-11-27
原題地址:https://leetcode-cn.com/problems/summary-ranges/submissions/
題目描述:
給定一個無重複元素的有序整數陣列,返回陣列區間範圍的彙總。
示例 1:
輸入: [0,1,2,4,5,7]
輸出: ["0->2","4->5","7"]
解釋: 0,1,2 可組成一個連續的區間; 4,5 可組成一個連續的區間。
示例 2:
輸入: [0,2,3,4,6,8,9]
輸出: ["0","2->4","6","8->9"]
解釋: 2,3,4 可組成一個連續的區間; 8,9 可組成一個連續的區間。
解題方案:
這題思路挺明顯的,很簡單,沒啥可說的。
程式碼:
class Solution { public: vector<string> summaryRanges(vector<int>& nums) { vector<string> ans; if(nums.size() == 0) return ans; int pre = nums[0]; string str = to_string(nums[0]); int flag = 0, count = 0; for(int i = 1; i < nums.size(); i ++){ count ++; if(nums[i] == pre + count) continue; else{ if(count > 1) str = str + "->" + to_string(pre + count - 1); ans.push_back(str); str = to_string(nums[i]); count = 0; pre = nums[i]; flag = 0; } } if(count >= 1) str = str + "->" + to_string(pre + count); ans.push_back(str); return ans; } };