給定乙個無重複元素的有序整數陣列 nums 。
返回恰好覆蓋陣列中所有數字的最小有序區間範圍列表。也就是說,nums 的每個元素都恰好被某個區間範圍所覆蓋,並且不存在屬於某個範圍但不屬於 nums 的數字 x 。
列表中的每個區間範圍 [a,b] 應該按如下格式輸出:
"a->b" ,如果 a != b
"a" ,如果 a == b
輸入:nums = [0,1,2,4,5,7]
輸出:["0->2","4->5","7"]
解釋:區間範圍是:
[0,2] --> "0->2"
[4,5] --> "4->5"
[7,7] --> "7"
定義了兩個數 first,second造成記憶體浪費, if else條件判斷太多 邏輯不清晰。
class solution
//陣列長度為1是
else if(length==1)
else
else
first=second;
k=i;
}//最後乙個區間的輸出
if(i==length-1)
else}}
}return result;
}
};
1、i作為每個區間下端小標,j作為每個區間右端下標
2、每次迴圈i不動,j++,若nums[j+1]!=nums[j]+1,則[i,j]為乙個區間,i=j+1作為下乙個區間的開頭,若j=length-1,直接輸出最後乙個區間。
3、每個區間用乙個字元變數string str表示
class solution {
public:
vectorsummaryranges(vector& nums) {
int length=nums.size();
vectorres;int i=0;
for(int j=0;j實現2中,若第乙個條件判斷寫為如下形式:if(j==length-1||nums[j+1]-nums[j]!=1),當nums輸入為[-2147483648,-2147483647,2147483647]時,會引發溢位報錯(line 57: char 38: runtime error: signed integer overflow: 2147483647 - -2147483647 cannot be represented in type 'int' (solution.cpp))。因為2147483647-(-2147483647)的值超出int的範圍。所以可用等式判斷時,應盡量避免加減數**算。
to_string();
將其他型別資料轉換成string型。
std::string to_string(int value); (1) (c++11起)
std::string to_string(long value); (2) (c++11起)
std::string to_string(long long value); (3) (c++11起)
std::string to_string(unsigned value); (4) (c++11起)
std::string to_string(unsigned long value); (5) (c++11起)
std::string to_string(unsigned long long value); (6) (c++11起)
std::string to_string(float value); (7) (c++11起)
std::string to_string(double value); (8) (c++11起)
std::string to_string(long double value); (9) (c++11起)
直接新增另乙個完整的字串:
新增另乙個字串的某一段子串:
新增幾個相同的字元:
注意,個數在前字元在後.上面的**意思為在str1後面新增5個".".
push_back();
pop_back() //移除最後乙個元素
clear() //清空所有元素
empty() //判斷vector是否為空,如果返回true為空
erase() // 刪除指定元素
228 彙總區間
給定乙個無重複元素的有序整數陣列 nums 返回 恰好覆蓋陣列中所有數字 的 最小有序 區間範圍列表。也就是說,nums 的每個元素都恰好被某個區間範圍所覆蓋,並且不存在屬於某個範圍但不屬於 nums 的數字 x 列表中的每個區間範圍 a,b 應該按如下格式輸出 a b 如果 a b a 如果 a ...
leetcode 228 彙總區間
給定乙個無重複元素的有序整數陣列 nums 返回 恰好覆蓋陣列中所有數字 的 最小有序 區間範圍列表。也就是說,nums 的每個元素都恰好被某個區間範圍所覆蓋,並且不存在屬於某個範圍但不屬於 nums 的數字 x 列表中的每個區間範圍 a,b 應該按如下格式輸出 a b 如果 a b a 如果 a ...
228 彙總區間 力扣(LeetCode)
給定乙個無重複元素的有序整數陣列,返回陣列區間範圍的彙總。示例 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 可組成乙個連續...