zoukankan      html  css  js  c++  java
  • [leetcode-914-X of a Kind in a Deck of Cards]

    In a deck of cards, each card has an integer written on it.

    Return true if and only if you can choose X >= 2 such that it is possible to split the entire deck into 1 or more groups of cards, where:

    • Each group has exactly X cards.
    • All the cards in each group have the same integer.

    Example 1:

    Input: [1,2,3,4,4,3,2,1]
    Output: true
    Explanation: Possible partition [1,1],[2,2],[3,3],[4,4]
    

    Example 2:

    Input: [1,1,1,2,2,2,3,3]
    Output: false
    Explanation: No possible partition.
    

    Example 3:

    Input: [1]
    Output: false
    Explanation: No possible partition.
    

    Example 4:

    Input: [1,1]
    Output: true
    Explanation: Possible partition [1,1]
    

    Example 5:

    Input: [1,1,2,2,2,2]
    Output: true
    Explanation: Possible partition [1,1],[2,2],[2,2]
    


    Note:

      1. 1 <= deck.length <= 10000
      2. 0 <= deck[i] < 10000

    思路:

    直接暴力,首先,x一定能整除deck的长度n。而且x也一定能整除group里每一个元素个数。

    bool hasGroupsSizeX(vector<int>& deck)
    {
        int n = deck.size();
        if(n <= 1)return false;
        map<int,int>mp;
        for(int i = 0; i < n; i++){mp[deck[i]]++;}
       
        for(int x = 2; x <= n; x++)
        {
            if( n % x != 0)continue;
            for(auto it = mp.begin(); ;)
            {
                if(it->second % x != 0) { break;} 
                it ++;
                if(it == mp.end()){return true;}
            }         
        }
        return false;
    }
  • 相关阅读:
    book pile SGU
    Inversions SGU
    蒟蒻LQL的博客
    控制台注入DLL代码
    Windows消息类型
    windows编程中的数据类型
    单链表的创建与遍历
    定义函数指针
    启动外部程序
    dll共享段中一些需要注意的问题
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/9747413.html
Copyright © 2011-2022 走看看