zoukankan      html  css  js  c++  java
  • Codlility---MinPerimeterRectangle

    Task description

    An integer N is given, representing the area of some rectangle.

    The area of a rectangle whose sides are of length A and B is A * B, and theperimeter is 2 * (A + B).

    The goal is to find the minimal perimeter of any rectangle whose area equals N. The sides of this rectangle should be only integers.

    For example, given integer N = 30, rectangles of area 30 are:

    • (1, 30), with a perimeter of 62,
    • (2, 15), with a perimeter of 34,
    • (3, 10), with a perimeter of 26,
    • (5, 6), with a perimeter of 22.

    Write a function:

    class Solution { public int solution(int N); }

    that, given an integer N, returns the minimal perimeter of any rectangle whose area is exactly equal to N.

    For example, given an integer N = 30, the function should return 22, as explained above.

    Assume that:

    • N is an integer within the range [1..1,000,000,000].

    Complexity:

    • expected worst-case time complexity is O(sqrt(N));
    • expected worst-case space complexity is O(1).
     
     
    Solution
     
    Programming language used: Java
    Code: 00:48:19 UTC, java, final, score:  100
    // you can also use imports, for example:
    // import java.util.*;
    
    // you can write to stdout for debugging purposes, e.g.
    // System.out.println("this is a debug message");
    
    class Solution {
        public int solution(int N) {
            // write your code in Java SE 8
            int max_perimeter = 2*(1+N);
            for(int i=2; i < Math.sqrt(N)+1; i++) {
                if(N%i == 0) {
                    max_perimeter = Math.min(max_perimeter, 2*(i+N/i));
                }
            }
            return max_perimeter;
        }
    }


    https://codility.com/demo/results/training8VZXU6-PUT/
  • 相关阅读:
    SCCM 补丁更新 失误排错一例
    Oracle 远程连接 DB配置 连接命令
    反向代理服务器
    用JMF播放音频 例子
    HTML css兼容
    Java国际化
    JBPM 之介绍,使用
    Nginx内核优化引用
    Nginx 学习
    局域网访问VMware虚拟机中的Ubuntu
  • 原文地址:https://www.cnblogs.com/samo/p/6991222.html
Copyright © 2011-2022 走看看