竞赛
考级
这是题解 ————————————————————以下是解释——————————————————— [1] 这里的li[1000005]是储存每一个数字出现的次数,方便计算,下标作为数字,值作为出现的次数 [2] 这里的for循环先将数值输入后将与数字对应的下标加1(也就是把数字出现的次数增加1) [3] 这里的for循环通过检索列表数组li中每个数字出现的次数来判断哪个数出现的次数超过一半 总结:这个方法是一种通过万怨深把列表数组当做Python中的字典来解决问题的一种方法 编者骄傲:不敢说是最快的,但一定是占内存最少的(乔鲁诺骄傲)
不得不说 这代码比AC还狗!!
如果你是个追求一篇超短AC题解的人,那恭喜你找对了:
这是超过一半的数题解 包对的 give me a赞
我真聪明
A367.超过一半的数 直接判断是否为一半 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#include <iostream> #include <map> using namespace std; int main() { int n; cin>>n; map<int, int> countMap; int half = n / 2; for (int i = 0; i < n; i) { int num; cin >> num; countMap[num]; if (countMap[num] > half) { cout << num << endl; return 0; } } return 0; }
提交答案之后,这里将显示提交结果~