360笔试第二题

360第二道题:放彩球。写的有些繁琐,有什么好的算法吗?
#include <iostream>

using namespace std;

int main()
{
int a[10000] = { 0 };
int n;
int i, j;
int min = 10000;
int count = 0;
cin >> n;

for (i = 0; i < n; i++)
{
cin >> j;
a[j]++;
}

bool flag = true;
for (i = 0; i < 10000; i++)
{
if (a[i] > 0)
{
if (a[i] == 1)
{
flag = false;
break;
}
else
{
if (min > a[i])
{
min = a[i];
}
}
}
}


for (i = 0; i < 10000; i++)
{
if (a[i] > 0)
{
if (a[i] % min != 0)
{
flag = false;
break;
}
else
{
count += a[i] / min;
}
}
}

if (flag)
{
cout << count << endl;
}
else
{
cout << 0 << endl;
}

return 0;
}

#360公司##笔试题目#
全部评论
python 15行 def main(): N = int(input()) nums = [int(i) for i in input().split()] s = set(nums) d = {i:nums.count(i) for i in s} m = min(d.values()) if m<2: return 0 res = 0 for k in d: cnt = d[k]//m if d[k]%m!=0: return 0 res += cnt return res
点赞 回复 分享
发布于 2019-04-25 09:45
def  main():     line = raw_input()     N = int(line.split()[0])          line = raw_input()     lines = line.split()          label = []     for item in lines:         label.append(int(item))          kinds = set(label)     times = {}          for kind in kinds:         times[kind] = label.count(kind)               num = 1     flag = 0     while True:         if N%num == 0:             avg = N/num             good = 1             for kind in kinds:                 if times[kind]%avg != 0:                     good = 0                     break                          if good == 1:                 flag = 1                      if flag == 1 or num>N/2+1:             break                      num += 1          res = 0     if flag == 1:         res = num     return res
点赞 回复 分享
发布于 2019-04-25 09:40
我方法好像和你一样,但是好像只能通过67
点赞 回复 分享
发布于 2019-04-25 09:35

相关推荐

07-22 11:53
门头沟学院 Java
终于有一个保底的offer了,但感觉是白菜价
北凝a:我想问问,提前批的offer 有问你啥时候到岗吗,如果你还想找其他的怎么办
点赞 评论 收藏
分享
06-13 17:33
门头沟学院 Java
顺序不记了,大致顺序是这样的,有的相同知识点写分开了1.基本数据类型2.基本数据类型和包装类型的区别3.==和equals区别4.ArrayList与LinkedList区别5.hashmap底层原理,put操作时会发生什么6.说出几种树型数据结构7.B树和B+树区别8.jvm加载类机制9.线程池核心参数10.创建线程池的几种方式11.callable与runnable区别12.线程池怎么回收线程13.redis三剑客14.布隆过滤器原理,不要背八股,说说真正使用时遇到了问题没有(我说没有,不知道该怎么回答了)15.堆的内存结构16.自己在写项目时有没有遇见过oom,如何处理,不要背八股,根据真实经验,我说不会17.redis死锁怎么办,watchdog机制如何发现是否锁过期18.如何避免redis红锁19.一个表性别与年龄如何加索引20.自己的项目的QPS怎么测的,有没有真正遇到大数量表21.说一说泛型22.springboot自动装配原理23.springmvc与springboot区别24.aop使用过嘛?动态代理与静态代理区别25.spring循环依赖怎么解决26.你说用过es,es如何分片,怎么存的数据,1000万条数据怎么写入库中27.你说用limit,那么在数据量大之后,如何优化28.rabbitmq如何批次发送,批量读取,答了延迟队列和线程池,都不对29.计网知不知道smtp协议,不知道写了对不对,完全听懵了30.springcloud知道嘛?只是了解反问1.做什么的?短信服务,信息量能到千万级2.对我的建议,基础不错,但是不要只背八股,多去实际开发中理解。面试官人不错,虽然没露脸,但是中间会引导我回答问题,不会的也只是说对我要求没那么高。面完问我在济宁生活有没有困难,最快什么时候到,让人事给我聊薪资了。下午人事打电话,问我27届的会不会跑路,还在想办法如何使我不跑路,不想扣我薪资等。之后我再联系吧,还挺想去的😭,我真不跑路哥😢附一张河科大幽默大专图,科大就是大专罢了
查看30道真题和解析
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-23 14:10
柴子木:找个工作你还发上脾气了🤣
点赞 评论 收藏
分享
评论
点赞
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务