当前位置: 首页 > news >正文

算法题 — 三个数的最大乘机

三个数的最大乘机

整型数组 nums,在数组中找出由三个数字组成的最大乘机,并输出这个乘积。(乘积不会越界)

重点考察:线性扫描

排序法:

public static void main(String[] args) {
    System.out.println(sort(new int[]{1, 2, 3, 4, 5}));
    System.out.println(sort(new int[]{-5, -4, -3, -2, -1}));
    System.out.println(sort(new int[]{-3, -2, -1, 1, 2}));
    System.out.println(sort(new int[]{-3, 1, 2, 3, 4}));
}

public static int sort(int[] nums) {
    Arrays.sort(nums);
    int len = nums.length;
    return Math.max(nums[len - 1] * nums[len - 2] * nums[len - 3],
            nums[0] * nums[1] * nums[len - 1]);
}

线性扫描:

public static int getMaxMin(int[] nums) {
    int min1 = Integer.MAX_VALUE, min2 = Integer.MAX_VALUE;
    int max1 = Integer.MIN_VALUE, max2 = Integer.MIN_VALUE, max3 = Integer.MIN_VALUE;
    for (int x : nums) {
        if (x < min1) {
            min2 = min1;
            min1 = x;
        } else if (x < min2) {
            min2 = x;
        }
        if (x > max1) {
            max3 = max2;
            max2 = max1;
            max1 = x;
        } else if (x > max2) {
            max3 = max2;
            max2 = x;
        } else if (x > max3) {
            max3 = x;
        }
    }

    return Math.max(min1 * min2 * max1, max1 * max2 * max3);
}

以 [-3, -5, 2, 1, 4] 为例:
线性扫描

http://www.dtcms.com/a/8958.html

相关文章:

  • Linux系统之部署复古游戏平台
  • RabbitMQ安装
  • 程序计数器介绍
  • 团体程序设计天梯赛 L2-007 家庭房产(并查集模拟)
  • Spring Test 常见错误
  • 本机虚拟机centos7设置固定ip
  • 大模型中 .safetensors 文件、.ckpt文件和.pth以及.bin文件区别、加载和保存以及转换方式
  • wordpress外贸独立站
  • Python爬虫——Urllib库-1
  • 2024京津冀光伏展
  • 刚工作菜鸟的小总结2
  • 短视频提取gif如何做?三秒快速转换
  • 【C语言】编程题专项练习+答案
  • Java 代理模式详解(附案例源代码)
  • vscode中使用nvm安装node及创建vue3项目
  • 三种图片预览插件viewer、vue-photo-preview、vue-picture-preview
  • java八股文复习-----2024/03/03
  • MAB建模规范介绍
  • 外包干了10个月,技术退步明显.......
  • 数据结构学习(四)高级数据结构
  • visual studio的使用
  • go-zero官网
  • Neo4j 新手教程 环境安装 基础增删改查 python链接 常用操作 纯新手向
  • 在您的下一个项目中选择 Golang 和 Node.js 之间的抉择
  • RK3568平台开发系列讲解(基础篇)字符设备驱动关键结构体
  • web3之Spacemesh(SMH)
  • 第41期 | GPTSecurity周报
  • 面经(五)南京 软通动力 一面
  • 【Linux】Linux原生异步IO(二):libaio相关结构体、函数详解
  • 【Spring底层原理高级进阶】Spring Kafka:实时数据流处理,让业务风起云涌!️