zoukankan      html  css  js  c++  java
  • Codility---MaxProductOfThree

    Task description

    A non-empty zero-indexed array A consisting of N integers is given. Theproduct of triplet (P, Q, R) equates to A[P] * A[Q] * A[R] (0 ≤ P < Q < R < N).

    For example, array A such that:

    A[0] = -3 A[1] = 1 A[2] = 2 A[3] = -2 A[4] = 5 A[5] = 6

    contains the following example triplets:

    • (0, 1, 2), product is −3 * 1 * 2 = −6
    • (1, 2, 4), product is 1 * 2 * 5 = 10
    • (2, 4, 5), product is 2 * 5 * 6 = 60

    Your goal is to find the maximal product of any triplet.

    Write a function:

    class Solution { public int solution(int[] A); }

    that, given a non-empty zero-indexed array A, returns the value of the maximal product of any triplet.

    For example, given array A such that:

    A[0] = -3 A[1] = 1 A[2] = 2 A[3] = -2 A[4] = 5 A[5] = 6

    the function should return 60, as the product of triplet (2, 4, 5) is maximal.

    Assume that:

    • N is an integer within the range [3..100,000];
    • each element of array A is an integer within the range [−1,000..1,000].

    Complexity:

    • expected worst-case time complexity is O(N*log(N));
    • expected worst-case space complexity is O(1), beyond input storage (not counting the storage required for input arguments).

    Elements of input arrays can be modified.

    Solution
     
    Programming language used: Java
    Total time used: 14 minutes
    Code: 00:27:07 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");
    import java.util.Arrays;
    import java.lang.Math;
    class Solution {
        public int solution(int[] A) {
            // write your code in Java SE 8
            Arrays.sort(A);
            int res = A[0] * A[1] * A[2];
            res = Math.max(res, A[0] * A[1] *A[A.length-1]);
            res = Math.max(res, A[0] * A[A.length-1] *A[A.length-2]);
            res = Math.max(res, A[A.length-3] * A[A.length-1] *A[A.length-2]);
            return res;                
        }
    }


    https://codility.com/demo/results/trainingHWDPP7-ZXQ/
  • 相关阅读:
    重置root密码
    JavaEE完整体系架构
    Analysis servlet injection
    隔离级别
    ULVAC爱发科皮拉尼真空计SW1-N说明书-手册
    研华advantech-凌华ADLINK板卡运动控制卡
    vc6.0转vs2012的一些错误与解决方法
    MFC时间简单比较方法
    MFC_VC++_时间获取与保存列表控件内容到文件操作方法
    show and hide. xp扩展名
  • 原文地址:https://www.cnblogs.com/samo/p/6784422.html
Copyright © 2011-2022 走看看