天天微头条丨#yyds干货盘点# 名企真题专题:最大乘积

2022-12-06 19:16:50 来源:51CTO博客


(资料图片仅供参考)

1.简述:

描述

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

输入描述:

输入共2行,第一行包括一个整数n,表示数组长度 第二行为n个以空格隔开的整数,分别为A1,A2, … ,An

输出描述:

满足条件的最大乘积

示例1

输入:

43 4 1 2

输出:

24

2.代码实现:

import java.util.*;class Main{        public static void main(String[] args) {            PDD1();        }        public static void PDD1(){            long sum = 1;            Scanner scanner = new Scanner(System.in);            int n = scanner.nextInt();            List arrayList = new ArrayList<>();            for (int i = 0; i < n; i++) {                arrayList.add(scanner.nextLong());            }            arrayList.sort((o1, o2) -> {                        Long tmp = o2-o1;                        return tmp.intValue();                    }            );            if (arrayList.get(1)*arrayList.get(2)                

标签: 满足条件 空间复杂度 时间复杂度

上一篇:微头条丨#yyds干货盘点# LeetCode程序员面试金典:移除重复节点
下一篇:Spring for GraphQL入门教程(二)