博客
关于我
线性扫描--求数组中三个数最大乘积
阅读量:334 次
发布时间:2019-03-04

本文共 1244 字,大约阅读时间需要 4 分钟。

package solution.study;import java.util.Arrays;/** * Created by Anjude * Date: 2021/4/18 23:28 * 注意数组中可能出现负数 */public class MaxProduct {       public static void main(String[] args) {           System.out.println(sort(new int[]{   1, 2, 3, 4, 5, 6}));        System.out.println(getMaxMin(new int[]{   1, 2, 3, 4, 5, 6}));    }    // 线性扫描    private static int getMaxMin(int[] nums) {           int min1 = Integer.MAX_VALUE, min2 = min1;        int max1 = Integer.MIN_VALUE, max2 = max1, max3 = max1;        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);    }    private static int sort(int[] nums) {           Arrays.sort(nums);        int n = nums.length;        return Math.max(nums[0] * nums[1] * nums[n - 1], nums[n - 1] * nums[n - 2] * nums[n - 3]);    }}

转载地址:http://wnhh.baihongyu.com/

你可能感兴趣的文章
MySQL 添加列,修改列,删除列
查看>>
mysql 添加索引
查看>>
MySQL 添加索引,删除索引及其用法
查看>>
mysql 状态检查,备份,修复
查看>>
MySQL 用 limit 为什么会影响性能?
查看>>
MySQL 用 limit 为什么会影响性能?有什么优化方案?
查看>>
MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
查看>>
mysql 用户管理和权限设置
查看>>
MySQL 的 varchar 水真的太深了!
查看>>
mysql 的GROUP_CONCAT函数的使用(group_by 如何显示分组之前的数据)
查看>>
MySQL 的instr函数
查看>>
MySQL 的mysql_secure_installation安全脚本执行过程介绍
查看>>
MySQL 的Rename Table语句
查看>>
MySQL 的全局锁、表锁和行锁
查看>>
mysql 的存储引擎介绍
查看>>
MySQL 的存储引擎有哪些?为什么常用InnoDB?
查看>>
Mysql 知识回顾总结-索引
查看>>
Mysql 笔记
查看>>
MySQL 精选 60 道面试题(含答案)
查看>>
mysql 索引
查看>>