zoukankan      html  css  js  c++  java
  • leetcode 575. Distribute Candies

    Given an integer array with even length, where different numbers in this array represent different kinds of candies. Each number means one candy of the corresponding kind. You need to distribute these candies equally in number to brother and sister. Return the maximum number of kinds of candies the sister could gain.

    Example 1:

    Input: candies = [1,1,2,2,3,3]
    Output: 3
    Explanation:
    There are three different kinds of candies (1, 2 and 3), and two candies for each kind.
    Optimal distribution: The sister has candies [1,2,3] and the brother has candies [1,2,3], too. 
    The sister has three different kinds of candies. 
    

    Example 2:

    Input: candies = [1,1,2,3]
    Output: 2
    Explanation: For example, the sister has candies [2,3] and the brother has candies [1,1]. 
    The sister has two different kinds of candies, the brother has only one kind of candies. 
    

    Note:

    1. The length of the given array is in range [2, 10,000], and will be even.
    2. The number in given array is in range [-100,000, 100,000].

    这题目随便搞吧,之前用map写的,后来看别人用bitset写的,也试试bitset

    class Solution {
    public:
        int distributeCandies(vector<int>& candies) {
            bitset<200001> hash;
            int n = candies.size();
            int count = 0;
            for (int i : candies) {
                if (!hash.test(i + 100000)) {
                    count++;
                    if(count == n/2) break; 
                    hash.set(i+100000);
                }
            }
            return min(count, n / 2);
        }
    };

    后来查官方文档发现 bitset还有这种操作

    #include <bits/stdc++.h>
    using namespace std;
    int main() {
        bitset<32> b;
        b[0] = 0;
        b[1] = 1;
        cout<<b.to_ulong()<<endl;
        return 0;
    }

    将bit装换为unsigned long

  • 相关阅读:
    JavaEE开发中系列总结
    equals及==问题
    eclipse debug弹出窗
    MacOS Sierra 显示隐藏文件命令
    了解点Excel VBA 代码,让工作效率提升多倍~
    PADS Layout进行eco对比更新
    PCB走线规则与一些技巧介绍
    旁路电容与去耦电容的区别
    Flash download failed-Cortex-M3的原因及解决办法
    Keil U5不能识别DAP仿真器的解决办法及原因
  • 原文地址:https://www.cnblogs.com/pk28/p/7248484.html
Copyright © 2011-2022 走看看