笔试题 找到数组中,三个数乘积最大的结果
来源:互联网 发布:淘宝评论完在哪里看 编辑:程序博客网 时间:2024/05/16 09:08
思路:先找到三个最大的数,求出乘积max1。再找两个最小的数,想乘后再乘以最大的数,得到乘积max2. 最终返回max1 max2的较大者
public static int maxThree(int[] arr){
//a[0]不用int[] a=new int[4];
a[1]=arr[0];
a[2]=arr[1];
a[3]=arr[2];
if(a[1]<a[3]){
int temp=a[1];
a[1]=a[3];
a[3]=temp;
}
if(a[2]<a[3]){
int temp=a[2];
a[2]=a[3];
a[3]=temp;
}
if(a[1]<a[2]){
int temp=a[1];
a[1]=a[2];
a[2]=temp;
}
for(int i=0;i<arr.length;i++){
if(arr[i]>a[3]){
if(arr[i]>a[2]){
a[3]=a[2];
if(arr[i]>a[1]){
a[2]=a[1];
a[1]=arr[i];
}else{
a[2]=arr[i];
}
}else{
a[3]=a[i];
}
}
}
//然后找到两个最小的数
int[] b={arr[0],arr[1]};
if(b[0]>b[1]){
int temp=b[0];
b[0]=b[1];
b[1]=temp;
}
for(int i=0;i<arr.length;i++){
if(arr[i]<b[1]){
if(arr[i]<b[0]){
b[0]=arr[i];
b[1]=b[0];
}else{
b[1]=arr[i];
}
}
}
return Math.max(a[1]*a[2]*a[3], a[1]*b[0]*b[1]);
}
阅读全文
0 0
- 笔试题 找到数组中,三个数乘积最大的结果
- 拼多多内推笔试一:求数组中任意三个数的最大乘积
- 从数组中找出乘积最大的三个数
- 无序数组中,三个数的乘积最大
- 拼多多笔试题一:给出一个无序整数数组,求任意三个数的最大乘积
- 求无序数组中的三个数的最大乘积
- 求解无序数组中三个数的最大乘积 (python实现)
- n-1 个数中三个数乘积最大的最小公倍数
- 笔试题:求最大连续子数组的最大乘积
- 找到数组中最大的数!
- 628. Maximum Product of Three Numbers数组中三个数乘积最大
- 一道笔试题——由数组中除了一个数之外的其他数的乘积生成另一个数组
- 在一个数组中找到连续的子数组最大的乘积
- 在数组中找到至少包含一个数字的子阵具有最大的乘积
- 在升序后降序数组中 找到最大的数
- 在一个数组中找到最大的两个数
- 求出数组中相邻三个数之和最大的~
- 三个递增的整形数组中找到最大的公共元素
- DevExpress Widget AutoSize
- brew cask install 解决慢的问题
- python学习之路-基础篇-day06
- 【简单枚举】HDU4858项目管理【BestCoder Round #1】
- Educational Codeforces Round 26 ABC题
- 笔试题 找到数组中,三个数乘积最大的结果
- 大话数据结构 code 第三章 02线性表链式存储_LinkList
- Java循环结构-for语句、while语句详解
- (小工具)Java分组排序通用程序实践(终结篇)
- POJ 1321 棋盘问题(DFS)
- viewWillLayoutSubviews viewDidLayoutSubviews viewWillAppear
- unity3d认识
- C/C++学习笔记六(文件系统、预处理器)
- 面向对象三大基本特征——继承