56. 合并区间 - 力扣(LeetCode)
cpp
class Solution {
static bool cmp(vector<int>&a,vector<int>&b){
return a[0] < b[0];
}
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
sort(intervals.begin(),intervals.end(),cmp);
vector<vector<int>>result;
result.push_back(intervals[0]);
for(int i=1;i<intervals.size();i++){
if(result.back()[1] >= intervals[i][0]){
result.back()[1]=max(intervals[i][1],result.back()[1]);
}
else{
result.push_back(intervals[i]);
}
}
return result;
}
};
和之前做的题很像,先排序、将第一个元素放入结果中根据边界条件不断更新数组边界。
738. 单调递增的数字 - 力扣(LeetCode)
cpp
class Solution {
public:
int monotoneIncreasingDigits(int n) {
string res = to_string(n);
int flag=res.size();
for(int i=res.size()-1;i>0;i--){
if(res[i-1]>res[i]){
flag=i;
res[i-1]--;
}
}
for(int i=flag;i<res.size();i++){
res[i]='9';
}
return stoi(res);
}
};
需要记住两个标准库函数的使用:
to_string()将数值类型转化为字符串类型。
stoi()将字符串类型转化为数值类型。