算法积累

计算最大数

      对数组进行排序,取最大的n个数和 (最大数*(绝对值乘积最大的数)),两者取最大值即为最大数。

复制代码
/**
     * 題目:求一个整数数组中的三个数最大乘积
     * 思路:若全是正數,則数组按顺序排序后,最大三个数的乘积即为最大值
     *      若全是负数,同样最大三个数的乘积即为最大值
     *      若既有正数也有负数,则;两数的绝对值最大值*最大正数
     *                           两数的绝对值= (两最大正数的乘积 或者两最小负数的乘积)
     */
    public long getMax(int[] args) {
        Arrays.sort(args);
        int length = args.length;
        //全正数和全负数的最大值
        int maxNum = args[length-1] * args[length-2] * args[length-3];

        //既有正数也有负数
        // int maxNum2 = args[length-1] * (两数的绝对值最大值 = )
        int maxNum2 = args[length-1] * args[0] * args[1];
        int maxNum3 = args[length-1] * args[length-2] * args[length-3];
        return Math.max(maxNum, maxNum2);
    }
复制代码

 

posted on   丶柚子  阅读(7)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示