
线性扫描--求数组中三个数最大乘积
发布日期:2021-05-07 08:21:03
浏览次数:16
分类:技术文章
本文共 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]); }}
发表评论
最新留言
很好
[***.229.124.182]2025年04月03日 21时05分42秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
还在一个一个手动安装虚拟机吗?Cobbler自动部署装机一键最小化安装打把游戏就好了
2021-05-08
程序员应该知道的97件事
2021-05-08
create-react-app路由的实现原理
2021-05-08
Linux环境变量配置错误导致命令不能使用(杂谈)
2021-05-08
openstack安装(九)网络服务的安装--控制节点
2021-05-08
shell编程(六)语言编码规范之(变量)
2021-05-08
vimscript学习笔记(二)预备知识
2021-05-08
Android数据库
2019-03-05
HTML基础,块级元素/行内元素/行内块元素辨析【2分钟掌握】
2019-03-05
keil左侧文件调整方法
2019-03-05
STM8 GPIO模式
2019-03-05
omnet++
2019-03-05
23种设计模式一:单例模式
2019-03-05
Qt中的析构函数
2019-03-05
C语言实现dijkstra(adjacence matrix)
2019-03-05
C语言学习从初级到精通的疯狂实战教程-徐新帅-专题视频课程
2019-03-05
三层框架+sql server数据库 实战教学-徐新帅-专题视频课程
2019-03-05
NAT工作原理
2019-03-05
Processes, threads and goroutines
2019-03-05