// short int long float double bool char string void// array vector stack queue auto const operator// class public private static friend extern// sizeof new delete return cout cin memset malloc// relloc size length memset malloc relloc size length// for while if else switch case continue break system// endl reverse sort swap substr begin end iterator// namespace include define NULL nullptr exit equals// index col row arr err left right ans res vec que sta// state flag ch str max min default charray std// maxn minn INT_MAX INT_MIN push_back insert// back empty find pop_backclassSolution{private:static bool cmp(const vector<int>& a,const vector<int>& b){return a[0]< b[0];}public:
int findMinArrowShots(vector<vector<int>>& points){if(points.size()==0){return0;}sort(points.begin(),points.end(),cmp);
int result =1;for(int i =1;i < points.size();i++){if(points[i][0]> points[i-1][1]){
result ++;}else{
points[i][1]=min(points[i][1],points[i-1][1]);}}return result;}};
// short int long float double bool char string void// array vector stack queue auto const operator// class public private static friend extern// sizeof new delete return cout cin memset malloc// relloc size length memset malloc relloc size length// for while if else switch case continue break system// endl reverse sort swap substr begin end iterator// namespace include define NULL nullptr exit equals// index col row arr err left right ans res vec que sta// state flag ch str max min default charray std// maxn minn INT_MAX INT_MIN push_back insert// back empty find pop_backclassSolution{private:static bool cmp(const vector<int>&a ,const vector<int>&b){return a[0]< b[0];}public:
int eraseOverlapIntervals(vector<vector<int>>& intervals){if(intervals.size()==0){return0;}sort(intervals.begin(),intervals.end(),cmp);
int count =0;for(int i =1; i<intervals.size(); i++){if(intervals[i][0]< intervals[i-1][1]){
intervals[i][1]=min(intervals[i][1],intervals[i-1][1]);
count ++;}}return count;}};
// short int long float double bool char string void// array vector stack queue auto const operator// class public private static friend extern// sizeof new delete return cout cin memset malloc// relloc size length memset malloc relloc size length// for while if else switch case continue break system// endl reverse sort swap substr begin end iterator// namespace include define NULL nullptr exit equals// index col row arr err left right ans res vec que sta// state flag ch str max min default charray std// maxn minn INT_MAX INT_MIN push_back insert// back empty find pop_backclassSolution{public:
vector<int>partitionLabels(string s){
int hash[27]={0};for(int i =0;i < s.size();i++){
hash[s[i]-'a']= i;}
int left =0,right =0;
vector<int> result;for(int i =0; i< s.size(); i++){
right =max(right , hash[(s[i]-'a')]);if(i == right ){
result.push_back(right-left+1);
left = i+1;}}return result;}};
classSolution{public:
int monotoneIncreasingDigits(int N){
string strNum =to_string(N);// flag用来标记赋值9从哪里开始// 设置为这个默认值,为了防止第二个for循环在flag没有被赋值的情况下执行
int flag = strNum.size();for(int i = strNum.size()-1; i >0; i--){if(strNum[i -1]> strNum[i]){
flag = i;
strNum[i -1]--;}}for(int i = flag; i < strNum.size(); i++){
strNum[i]='9';}returnstoi(strNum);}};