#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; } }