您的位置:首页 > 其它

SRM 439 SquareOfDigits

2009-05-11 14:44 831 查看
 题目链接:http://www.topcoder.com/stat?c=problem_statement&pm=10395&rd=13747

这个题目比较简单,主要是看循环循序不同对算法效率的影响

one:

#include<string>
#include<vector>
using namespace std;
struct SquareOfDigits
{

int min(int a,int b)
{
return a<b?a:b;
}
int getMax(vector<string> data)
{
int i,j,k;
int size=min(data.size(),data[0].size());

for(k=size;k>1;k--)
{
for(i=0;i+k-1<data.size();i++)
for (j=0;j+k-1<data[i].size();j++)
{
if(data[i][j]==data[i+k-1][j+k-1]&&data[i][j]==data[i+k-1][j]&&data[i][j]==data[i][j+k-1])
return k*k;
}
}
return 1;
}
};


two:

#include<string>
#include<vector>
#include<iostream>
using namespace std;

struct SquareOfDigits
{

int min(int a,int b)
{
return a<b?a:b;
}

int getMax(vector<string> data)
{
int size = min(data.size(),data[0].size());
int ans = 1;
for(int i=0;i<data.size();i++)
for(int j=0;j<data[i].size();j++)
{
for(int len=min(data.size()-i,data[i].size()-j);len>ans;len--)
{
if(data[i][j]==data[i+len-1][j+len-1]&&data[i][j]==data[i+len-1][j]&&data[i][j]==data[i][j+len-1])
{ans=len;break;}
}
}
return ans*ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法