我在一次采访中遇到了以下问题,因为我完全不知道如何进行操作,因此可以帮助我解决一些问题

由N个元素组成的非空数组A包含一个非负整数K的八进制表示,即A的每个元素都属于区间[0; 7]

编写一个函数:

int bitcount_in_big_octal(const vector<int> &A);


返回以K的二进制表示形式设置为1的位数。如果设置为1的位数超过10,000,000,则函数应返回-1。

假设数组可能非常大。

假设N为[1..100,000]范围内的整数。

最佳答案

有时间限制吗?
我有一个主意:首先,制作以下字典,{0-> 0,1-> 1,2-> 1,3-> 2,4-> 1,5-> 1,6-> 2,7 -> 3}。然后,使用字典将数组A循环以将每个元素中的1求和。

关于c++ - 在以下情况下的位数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8457530/

10-10 03:36