zoukankan      html  css  js  c++  java
  • LC1282.用户分组

    有 n 位用户参加活动,他们的 ID 从 0 到 n - 1,每位用户都 恰好 属于某一用户组。给你一个长度为 n 的数组 groupSizes,其中包含每位用户所处的用户组的大小,请你返回用户分组情况(存在的用户组以及每个组中用户的 ID)。

    你可以任何顺序返回解决方案,ID 的顺序也不受限制。此外,题目给出的数据保证至少存在一种解决方案。

    示例 1:

    输入:groupSizes = [3,3,3,3,3,1,3]
    输出:[[5],[0,1,2],[3,4,6]]
    解释:
    其他可能的解决方案有 [[2,1,6],[5],[0,4,3]] 和 [[5],[0,6,2],[4,3,1]]。
    示例 2:

    输入:groupSizes = [2,1,3,3,3,2]
    输出:[[1],[0,5],[2,3,4]]
     

    提示:

    groupSizes.length == n
    1 <= n <= 500
    1 <= groupSizes[i] <= n

     1 class Solution {
     2 public:
     3     vector<vector<int>> groupThePeople(vector<int>& groupSizes) {
     4         unordered_map<int, vector<int>> groups;
     5         vector<vector<int>> res;
     6         for(int i=0;i<size(groupSizes);i++){
     7            groups[groupSizes[i]].push_back(i);
     8         }
     9     
    10         for(auto group:groups){
    11             if(group.first){
    12                 if(group.first<size(group.second)){
    13                     vector<int> ans;
    14                     for(int i=0;i<size(group.second);i++){
    15                         ans.push_back(group.second[i]);
    16                         if((i+1)%group.first==0){
    17                             res.push_back(ans);
    18                             ans.clear();
    19                         }
    20                     }
    21                 }
    22                 else
    23                     res.push_back(group.second);
    24             }
    25         }
    26         return res;
    27     }
    28 };

    pick 1:

    C++ 清除Vector的三种方法:

    原文链接:https://blog.csdn.net/sinat_18811413/article/details/104592921

     1     vector <int> vecInt;
     2     for (int i=0;i<50;i++)
     3     {
     4         vecInt.push_back(i);
     5     }
     6     
     7     cout<<"capacity:"<<vecInt.capacity();   //j=64
     8     cout<<"size:"<<vecInt.size();          //i=50           
     9     cout<<endl;
    10     
    11     //1、使用clear ,清空元素,不回收空间
    12     vecInt.clear();
    13     cout<<"capacity:"<<vecInt.capacity();      //j=64
    14     cout<<"size:"<<vecInt.size();         //i=50
    15     cout<<endl;
    16     //2、erase循环删除,不回收空间
    17     for (int i=0;i<50;i++)
    18     {
    19         vecInt.push_back(i);
    20     }
    21     
    22     for ( vector <int>::iterator iter=vecInt.begin();iter!=vecInt.end();)
    23     {
    24         iter=vecInt.erase(iter);
    25     }
    26     cout<<"capacity:"<<vecInt.capacity();      //j=64
    27     cout<<"size:"<<vecInt.size();         //i=50   
    28     cout<<endl;
    29 
    30     //3、使用swap,清除元素并回收内存
    31     vector <int>().swap(vecInt);  //清除容器并最小化它的容量,
    32     //   vecInt.swap(vector<int>()) ;     另一种写法
    33     cout<<"capacity:"<<vecInt.capacity();      //j=0
    34     cout<<"size:"<<vecInt.size();         //i=0
    35     cout<<endl;
    36 }

     pick 2:

    可迭代容器 中auto 与iterator的不同使用方式;

     1 #include<iostream>
     2 #include<unordered_map>
     3 #include<vector>
     4 using namespace std;
     5 
     6 int main(){
     7     unordered_map<int, vector<int>> res;
     8     for(int i=0;i<20;i++){
     9         res[i%4].push_back(i);//分四组,余数分别为0,1,2,3四个桶
    10     }
    11     //使用auto遍历
    12     for(auto m:res){
    13         cout<<m.first<<" "<<m.second.size()<<endl;
    14     }
    15     //使用迭代器遍历,迭代器相当于指针,*iter去对应迭代器的内容,
    16     for(unordered_map<int, vector<int>>::iterator iter=res.begin();iter!=res.end();iter++){
    17         cout<<iter->first<<" "<<(iter->second).size()<<endl;
    18     }
    19     vector<int> ans;
    20     for(int i=0;i<5;i++){
    21         ans.push_back(i*3);
    22     }
    23    
    24     for(auto m:ans)
    25     {
    26         cout<<m<<" ";
    27     }
    28     cout<<endl;
    29 
    30     for(vector<int>::iterator iter=ans.begin();iter!=ans.end();iter++){
    31         cout<<*iter<<" ";
    32     }
    33     cout<<endl;
    34 }

    输出结果:

  • 相关阅读:
    Uploadify404无效链接
    java开发SSM框架的搭建(SpringMVC+Spring+MyBatis)
    PHP文件处理--操作文件
    机器学习01-kNN邻近算法
    多校 hdu
    iOS中OC给Category加入属性
    Wampserver 2.5 多网站配置方法
    c语言编写经验逐步积累4
    UVA 529 Addition Chains(迭代搜索)
    机器学习简史brief history of machine learning
  • 原文地址:https://www.cnblogs.com/Susie2world/p/12808961.html
Copyright © 2011-2022 走看看