题目:大概意思就是如果假设你是web开发人员,给你一个网页的大小如何算长和宽,最简单的意思就是,给你一个数,你要算出它的最小距离的两个除的尽的数,并且前面的数要大于后面的数字。
思路:思路说完题目已经很清晰了,就是设置一个minin,如果小于这个mini就更新minin值和更新要返回数组的值,附上代码:
public int[] constructRectangle(int area) {
int mini=10000000;
int[] result=new int[2];
for(int i=1;i<=area;i++){
if(area%i==0){
if(Math.abs((area/i)-i)<mini){
mini=Math.abs((area/i)-i);
result[0]=area/i>i?area/i:i;
result[1]=area/i<i?area/i:i;
}
}
}
return result;
}
看看高手的代码:
public int[] constructRectangle(int area) {
int w = (int)Math.sqrt(area);
while (area%w!=0) w--;
return new int[]{area/w, w};
}
网友评论