1.合并区间
1.1 题目
. - 力扣(LeetCode)
1.2 题解
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals)
{
//先从小到大排序
sort(intervals.begin(), intervals.end(), [](vector<int>& a, vector<int>& b) {return a[0] < b[0]; });
vector<vector<int>> result;
result.push_back(intervals[0]);
//遍历
for (int i = 1; i < intervals.size(); i++)
{
//有重叠
if (intervals[i][0] <= result.back()[1])
{
result.back()[1] = max(intervals[i][1], result.back()[1]);
}
else
{
result.push_back(intervals[i]);
}
}
return result;
}
};
2.单调递增的数字
2.1 题目
. - 力扣(LeetCode)
2.2 题解
class Solution {
public:
int monotoneIncreasingDigits(int n)
{
//转为string
string nstr = to_string(n);
int flag = nstr.size();
//从后向前遍历
for (int i = nstr.size() - 1; i >= 1; i--)
{
//当前一位比后一位数字大时
if (nstr[i - 1] > nstr[i])
{
nstr[i - 1]--;
//记录要置为9的起始位置
flag = i;
}
}
for(int i = flag; i < nstr.size(); i++)
{
nstr[i] = '9';
}
n = stoi(nstr);
return n;
}
};