全部评论
360?
请问第一题有什么特殊情况吗,我一直89%。。。。
一眼就发现找最小公倍数了,A的莫名其妙的,第一天89%,不知道哪个奇怪的例子没过去
第一题最多88 搞不懂
AK出来了😁
360企业安全确实是做过的最简单的编程题。。
字符串那个一直都是89%……有什么思路吗大家
第一题有A出来的吗?一直89
我也是第一题83%…
其实……你们试试把第一题类型改为long long……
第二题求大佬给个思路
第二题最大公约数不是吗?卡在67%怎么试都不对...
也AK了。就是不知道360安全hc还多吗😂
第一题卡78什么情况?
第二题为什么是最大公约数啊
360是我全部笔试中唯一一次全部AC的😂😂😂,第一题是整理彩色的球,第二题是矩阵中最长递增序列的长度
用的int,没影响啊 AC代码 #include<vector> #include<unordered_map> using namespace std; int main() { // 输入 int n; // 总数 cin >> n; int val; unordered_map<int, int> valMap; unordered_map<int, int>::iterator valIter; // 输入并计数 for (int i = 0; i < n; i++) { cin >> val; if ((valIter = valMap.find(val)) != valMap.end()) { (valIter->second)++; } else { valMap[val] = 1; } } // 寻找最小值 int min = n; for (auto i : valMap) { // 不足 2 的球肯定不行,直接返回0 if (i.second < 2) { cout << 0; return 0; } // 和 n 相同,说明只有一种球,返回 1 if (i.second == n) { cout << 1; return 0; } // 最小值 if (i.second < min && i.second != 0) { min = i.second; } } int num = min; // 篮子球的个数 int k = 1; int maxK = min; bool flag = false; while (num >= 2 && k <= (min / 2)) { if (min % k == 0) { num = min / k; for (auto i : valMap) { if (i.second % num != 0) { break; } flag = true; } } else { k++; } if (flag) break; } if (flag) { cout << n / num; } else { cout << 0; } system("pause"); return 0; }
服务器开发java岗 是不是只有北京
# 第一题AC
# coding: utf-8
from collections import Counter
n = int(input())
c = Counter(list(map(int, input().split())))
c_t = c.most_common(len(c))
least = c_t[-1]
d = dict(c_t)
if least[1] < 2:
print(0)
exit()
while d[least[0]] >= 2:
least_num = d[least[0]]
ret = 0
flag = True
for i in d.keys():
if d[i] % least_num == 0:
ret += d[i] // least_num
else:
flag = False
d[least[0]] = d[least[0]] - 1
break
if flag:
print(ret)
exit()
print(0)
恭喜恭喜😂
相关推荐
点赞 评论 收藏
分享

点赞 评论 收藏
分享