LeetCode-492. Construct the Rectangle (Java)
来源:互联网 发布:mac给视频配音的软件 编辑:程序博客网 时间:2024/06/06 09:05
For a web developer, it is very important to know how to design a web page's size. So, given a specific rectangular web page’s area, your job by now is to design a rectangular web page, whose length L and width W satisfy the following requirements:
1. The area of the rectangular web page you designed must equal to the given target area.You need to output the length L and the width W of the web page you designed in sequence.
2. The width W should not be larger than the length L, which means L >= W.
3. The difference between length L and width W should be as small as possible.
Example:
Input: 4Output: [2, 2]Explanation: The target area is 4, and all the possible ways to construct it are [1,4], [2,2], [4,1]. But according to requirement 2, [1,4] is illegal; according to requirement 3, [4,1] is not optimal compared to [2,2]. So the length L is 2, and the width W is 2.----------------------------------------------------------------------------------------------------------------------------------------------------------------
这道题比较简单,需要了解的是循环的范围选取。代码如下:
public class Solution { public int[] constructRectangle(int area) { int width = 0;int length = 0;int difference = 0;int minDifference = Integer.MAX_VALUE;List<Integer> list = new ArrayList<>(); for(int i =1;i<=Math.sqrt(area);i++){ if(area%i==0){ width = i; length = area/i; difference = length - width; if(difference < minDifference){ list.clear(); list.add(length); list.add(width); } } } int [] result = new int[list.size()]; int j =0; for(Integer value : list){ result[j++] = value; } return result; }}
for循环之所以是i<=Math.sqrt(area), 因为 num = a*b,则a,b必有一个大于根号x,有一个小于根号x,况且因子都是成对出现,所以只需判断根号x,可以减少循环次数,提高效率。
阅读全文
0 0
- LeetCode 492. Construct the Rectangle(Java)
- LeetCode-492. Construct the Rectangle (Java)
- 【Leetcode】492. Construct the Rectangle
- LeetCode 492. Construct the Rectangle
- 492. Construct the Rectangle [LeetCode]
- LeetCode-492. Construct the Rectangle
- leetcode 492. Construct the Rectangle
- LeetCode | 492. Construct the Rectangle
- [LeetCode]492. Construct the Rectangle
- LeetCode 492. Construct the Rectangle
- [leetcode]: 492. Construct the Rectangle
- LeetCode:492. Construct the Rectangle
- leetcode 492. Construct the Rectangle
- leetcode 492. Construct the Rectangle
- LeetCode 492. Construct the Rectangle
- leetcode 492. Construct the Rectangle
- leetcode-492. Construct the Rectangle
- leetcode 492. Construct the Rectangle
- 约瑟夫环问题
- How to Build Your Own Rogue GSM BTS for Fun and Profit
- 简单的文件操作
- mevan配置
- cell自动计算行高遇到回车换行的问题 UITableView+HYBCacheHeight、UITableView+HYBCacheHeight
- LeetCode-492. Construct the Rectangle (Java)
- _sizeof和_countof的区别
- Uncaught SyntaxError: Unexpected token :
- cocos creator 中使用自定义shader
- 什么时候用存储过程---存储过程好处
- Android中获取正在运行的应用程序-----ActivityManager.RunningAppProcessInfo类详解
- protobuf的C简单的代码例子(一)
- java 单线程读取大文件10G
- springmvc url-pattern and static resources