2610 simple
This commit is contained in:
parent
42f7e2d108
commit
a09ca8d9c2
59
2610-20240102-pass/main.cpp
Normal file
59
2610-20240102-pass/main.cpp
Normal file
@ -0,0 +1,59 @@
|
||||
#include<stdcpp.h>
|
||||
using namespace std;
|
||||
class Solution{
|
||||
public:
|
||||
vector<vector<int> > findMatrix(vector<int>& nums){
|
||||
sort(nums.begin(),nums.end(),greater<int>());
|
||||
int max_cate = 1;
|
||||
int cate = 1;
|
||||
for(int i = 1 ; i < nums.size();i++){
|
||||
if(nums[i]==nums[i-1])
|
||||
cate++;
|
||||
else{
|
||||
max_cate = max(max_cate,cate);
|
||||
cate = 1;
|
||||
}
|
||||
}
|
||||
max_cate = max(max_cate,cate);
|
||||
vector<vector<int> > rlt(max_cate);
|
||||
int cnt = 0;
|
||||
while(cnt < nums.size() - 1){
|
||||
int cnt_in = 0;
|
||||
rlt[cnt_in++].push_back(nums[cnt++]);
|
||||
while(cnt<nums.size() - 1&&nums[cnt]==nums[cnt-1]){
|
||||
rlt[cnt_in++].push_back(nums[cnt++]);
|
||||
}
|
||||
}
|
||||
for(int i = 0 ; i < rlt.size() ;i++){
|
||||
int end = rlt[i].size() - 1;
|
||||
if(rlt[i].size() == 0||rlt[i][end]!=nums[nums.size()-1]) {
|
||||
rlt[i].push_back(nums[nums.size() - 1]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return rlt;
|
||||
}
|
||||
};
|
||||
int main(){
|
||||
Solution sol;
|
||||
cout<<"ex1"<<endl;
|
||||
vector<int> ex1_nums = {1,3,4,1,2,3,1};
|
||||
vector<vector<int> >rlt1 = sol.findMatrix(ex1_nums);
|
||||
for(int i = 0 ; i < rlt1.size();i++){
|
||||
for(int j = 0 ; j <rlt1[i].size();j++){
|
||||
cout<<rlt1[i][j]<<' ';
|
||||
}
|
||||
cout<<endl;
|
||||
}
|
||||
cout<<endl;
|
||||
cout<<"ex2"<<endl;
|
||||
vector<int> ex2_nums = {4,4,3};
|
||||
vector<vector<int> >rlt2 = sol.findMatrix(ex2_nums);
|
||||
for(int i = 0 ; i < rlt2.size();i++){
|
||||
for(int j = 0 ; j <rlt2[i].size();j++){
|
||||
cout<<rlt2[i][j]<<' ';
|
||||
}
|
||||
cout<<endl;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user