码迷,mamicode.com
首页 > 其他好文 > 详细

PAT A1054

时间:2017-08-04 21:30:42      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:log   焦点   style   复杂度   ima   str   stdio.h   names   color   

题目看了之后觉得不难, 自己感觉考点应该是在复杂度上,应该很容易出现超时

第一次用哈希表提交后,果然有一个测试点超时

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 int hashTable[16777217]={
 5   0
 6 };
 7 int main()
 8 {
 9   
10   int m,n,t;
11   
12   cin>>m>>n;
13    for(int i=0;i<n;i++) 
14   for(int j=0;j<m;j++)
15   {
16     cin>>t;
17      hashTable[t]++;
18     }
19    int mmax=0,num=-1;
20    for(int i=0;i<16777216;i++)
21    if(hashTable[i]>mmax)
22    {
23      mmax=hashTable[i];
24      num=i;
25    }
26    cout<<num<<endl;
27    
28    
29   return 0;
30 }

经过分析后,发现其实最后那个for循环的遍历可以省去的,修改后如下

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 int hashTable[16777217]={
 5   0
 6 };
 7 int main()
 8 {
 9   
10   int m,n,t;
11   int mmax=0,num=-1;
12   cin>>m>>n;
13    for(int i=0;i<n;i++) 
14   for(int j=0;j<m;j++)
15   {
16     cin>>t;
17      hashTable[t]++;
18      if(hashTable[t]>mmax)
19      {
20        mmax=hashTable[i];
21        num=t;
22      }
23     }
24    
25    cout<<num<<endl;
26    
27    
28   return 0;
29 }

确实时间花费少多了,但是还是那个测试点超时,详细结果如下

技术分享

经过分析算法本身的复杂度已经不能降低了,毕竟只要输入数据就会有结果。所以焦点放到程序的其它方面,比如输入输出

将程序的输入输出改为C语言模式后,所有测试点均通过

 1 #include<stdio.h>
 2 #include<algorithm>
 3 
 4 int hashTable[16777217]={
 5     0
 6 };
 7 int main()
 8 {
 9     
10     int m,n,t;
11     int mmax=0,num=-1;
12     scanf("%d%d",&m,&n);
13      for(int i=0;i<n;i++) 
14     for(int j=0;j<m;j++)
15     {
16         scanf("%d",&t);
17          hashTable[t]++;
18          if(hashTable[t]>mmax)
19          {
20              mmax=hashTable[i];
21              num=t;
22          }
23     }
24      
25     printf("%d\n",num);
26      
27      
28     return 0;
29 }

技术分享

 

PAT A1054

标签:log   焦点   style   复杂度   ima   str   stdio.h   names   color   

原文地址:http://www.cnblogs.com/PLF-ProjectD/p/7287012.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!