2610 simple
This commit is contained in:
		
							
								
								
									
										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; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user