【算法/贪心算法/序列问题】题解+详细备注(共2题)
class Solution {
public:
int wiggleMaxLength(vector<int>& nums) {
int n = nums.size();
int cur{};
int pre{};
int result{1};
for(int i{};i<n-1;++i){
cur = nums[i+1]-nums[i];
if((cur > 0 && pre <=0) || (cur < 0 && pre >=0)){
pre = cur;
result++;
}
}
return result;
}
};
class Solution {
public:
int monotoneIncreasingDigits(int n) {
string num = to_string(n);
int length = num.size();
int flag{INT_MAX};
for(int i = length-1;i>0;--i){
if(num[i-1] > num[i]){
flag = i;
num[i-1]--;
}
}
for(int i = flag;i<length;++i){
num[i] = '9';
}
return stoi(num);
}
};