我目前正在处理一个leetcode问题来构造一个矩形。一个int值将被传递到一个方法中,从那里我需要两个长度和宽度值,其中长度和宽度必须尽可能小,L>;=我看了一些解决方案,但无法理解这个概念。在第4行,结果不是总是得到面积吗?那么,for循环如何继续?例如,如果面积是26,我们在第4行进行计算,那么我们不是总是在第4列得到相同的数字吗?然而,当我运行代码时,它给出了[13,2]的正确结果。
1 class Solution { 2 public int[] constructRectangle(int area) { 3 for(int w=(int)Math.sqrt(area);w>0;w--){ 4 if((area/w)*w==area)return new int[]{area/w,w}; }return new int[]{}; } }