拼多多 面试题 最大成绩

简介: 拼多多 面试题 最大成绩

题目描述

给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)

输入描述:

无序整数数组A[n]

输出描述:

满足条件的最大乘积

示例1

输入

复制

3 4 1 2

输出

复制

24


思路

/定义五个数,一个最大,一个次大,一个第三大,一个最小,一个次小。

只要找到这五个数,问题就解决了。因为最大乘积只可能是

最大(次大第三大) 或者是 最大(最小次小)。时间复杂度O(n),

空间复杂度O(1)。PS:这道题输入有问题,题目给的样例是直接给了一组数,

而此时用例先给了一个数的个数n,然后再给了一组数/


import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        long[] array=new long[n];
        for(int i=0;i<n;i++){
            array[i]=sc.nextLong();
        }
        getTheMostValue(array,n);
    }
    public static void getTheMostValue(long[] num,int len){
        long max1=0;long max2=0;long max3=0;long min1=0;long min2=0;
        for(int i=0;i<len;i++){
            if(num[i]>max1){
                max3=max2;
                max2=max1;
                max1=num[i];
            }else if(num[i]>max2){
                max3=max2;
                max2=num[i];
            }else if(num[i]>max3){
                max3=num[i];
            }else if(num[i]<min1){
                min2=min1;
                min1=num[i];
            }else if(num[i]>min1&&num[i]<min2){
                min2=num[i];
            }
        }
        long max=Math.max(max1*max2*max3,max1*min1*min2);
        System.out.println(max);
    }
}
目录
相关文章
|
Linux 编译器 Shell
拼多多面试 Linux下一个应用程序开始执行到main被调用之间经历了什么?
在Linux中,程序启动到`main`调用涉及加载器、内核、动态链接器和C运行时。`execve`系统调用加载ELF文件,内核创建进程,加载段,设置栈和调用动态链接器。动态链接器解析符号,重定位,执行初始化。C运行时初始化堆栈,调用`main`。从`_start`到`main`的流程包括环境设置和函数调用。
148 0
|
SQL 大数据
常见大数据面试SQL-每年总成绩都有所提升的学生
一张学生成绩表(student_scores),有year-学年,subject-课程,student-学生,score-分数这四个字段,请完成如下问题: 问题1:每年每门学科排名第一的学生 问题2:每年总成绩都有所提升的学生
|
消息中间件 存储 网络协议
拼多多面试:Netty如何解决粘包问题?
粘包和拆包问题也叫做粘包和半包问题,**它是指在数据传输时,接收方未能正常读取到一条完整数据的情况(只读取了部分数据,或多读取到了另一条数据的情况)就叫做粘包或拆包问题。** 从严格意义上来说,粘包问题和拆包问题属于两个不同的问题,接下来我们分别来看。 ## 1.粘包问题 粘包问题是指在网络通信中,发送方连续发送的多个小数据包被接收方一次性接收的现象。这可能是因为底层传输层协议(如 TCP)会将多个小数据包合并成一个大的数据块进行传输,导致接收方在接收数据时一次性接收了多个数据包,造成粘连。 例如以下案例,正常情况下客户端发送了两条消息,分别为“ABC”和“DEF”,那么接收端也应该收到两
121 0
拼多多面试:Netty如何解决粘包问题?
|
存储 前端开发 JavaScript
web前端 第一阶段面试题(1),2024年最新拼多多前端社招面试
web前端 第一阶段面试题(1),2024年最新拼多多前端社招面试
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_106 查找成绩处于中游的学生
「SQL面试题库」 No_106 查找成绩处于中游的学生
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_61 每位学生的最高成绩
「SQL面试题库」 No_61 每位学生的最高成绩
|
机器学习/深度学习 存储 前端开发
手撕前端面试题【javascript~ 总成绩排名、子字符串频次统计、继承、判断斐波那契数组等】
在刷题之前先介绍一下牛客。Leetcode有的刷题牛客都有,除此之外牛客里面还有招聘(社招和校招)、一些上岸大厂的大佬的面试经验。 牛客是可以伴随一生的编程软件(完全免费),从学校到社会工作,时时刻刻你都可以用到,感兴趣的可以去注册试试可以伴随一生的刷题app
139 0
|
算法 安全 Java
入职拼多多的Java面试经验分享(文档)
写在2023年初的蚂蚁、头条、拼多多的面试总结 文章有点长,请耐心看完,绝对有收获!不想听我BB直接进入面试分享: 准备过程 蚂蚁金服面试分享 拼多多面试分享 字节跳动面试分享 总结 说起来开始进行面试是年前倒数第二周,上午9点,我还在去公司的公交上,突然收到蚂蚁的面试电话,其实算不上真正的面试。面试官只是和我聊了下他们在做的事情(主要是做双十一这里大促的稳定性保障,偏中间件吧),说的很详细,然后和我沟通了下是否有兴趣,我表示有兴趣,后面就收到正式面试的通知,最后没选择去蚂蚁表示抱歉。
704 0
|
前端开发 JavaScript 算法
拼多多和酷家乐面试总结(已拿offer)
在文章里我不仅会列出面试题,还会给到一些答题建议,个人能力有限,也不能保证我回答都正确,如果有错误,希望能纠正我。
379 0
拼多多和酷家乐面试总结(已拿offer)
|
NoSQL 算法 前端开发
拼多多面试题:如何用 Redis 统计独立用户访问量?
拼多多面试题:如何用 Redis 统计独立用户访问量?
250 0
拼多多面试题:如何用 Redis 统计独立用户访问量?