- 这里要注意的是当数字足够大的时候,我们要使用long long形式的类型,用来记录那个最大值
- 最大值共有四种情况:
- 三个正数:数字本身越大则乘积越大
- 两个负数一个正数:负负得正,所以两个负数最小,之积最大
- 两个正数一个负数:
- 这种情况,如果只有【正,正,负】【正,正,负,负】【正,正,负,负,负】【正,正,正,负,负】
- 所有的情况都包含在第一种和第二种情况里,所以这种情况可以去掉。
- 三个负数:
- 这种情况只有【负,负,负】这一种情况,这种情况和第一种相重合,所以也可以去掉
- 所以这里需要求五个数,三个最大,和两个最小,之后将上述的两种情况相比较,那个大就是那个
#include<stdio.h> #define N 10000 int main(void){ int A[N]={0}; //输入数组个数; int n; scanf("%d",&n); //输入数组 for(int k=0;k<n;k++){ scanf("%d",&A[k]); } int m1=0,m2=0,m3=0,x1=0,x2=0; //找到最大的三位数以及最小的两位数 for(int i=0;i<n;i++){ if(A[i]>0){ if(A[i]>m1){ m3=m2; m2=m1; m1=A[i]; }else if(A[i]>m2){ m3=m2; m2=A[i]; }else if(A[i]>m1){ m3=A[i]; } }else{ if(A[i]<x1){ x2=x1; x1=A[i]; }else if(A[i]<x2){ x2=A[i]; } } } long temp=m1*m2; long long max=temp*m3; temp = x1*x2; long long max1=m1*temp; if(max1>max) max=max1; printf("%lld",max); return 0; }
相关推荐
三个数乘积
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)
给出一个整数数组,有正有负有零,要求找出三个数,使其乘积最大
求三个数使乘积最大 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) //1.全都是正数,MAX1*MAX2*MAX3(最大的三个数相乘) //2.全都是负数,MAX1*MAX2*MAX3(最大的三个数相乘) //3.有正有负(1)最大应该是正数,因为有正有负的话,三个数相乘总能得到正数 // 只可能这样...
三个数的最大积(贪心法)
三个数的最大积(贪心法)
【牛客】最大乘积
题目描述 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 无序整数数组A[n] 输出描述: 满足条件的最大乘积 示例 输入 3 4 1 2 输出 24 Python解法 这道题用 Python可以直接使用内置乘法做出来,但我们这里不使用这种开挂的做法。 经常刷题的童鞋应该看到这个题目很容易想到n个数的...
STM32控制舵机SG-5010转动,HAL库
首先设置时钟为72Mhz,预分频系数为72-1,自动重装载计数器的值为5000-1,这样的话就可以得到一个5ms的脉冲宽度,5000的计数值可以让舵机的旋转角度变得更加易控且相对精准,计算旋转角度的时候也可以更加精确。所以我们5ms脉宽,period是5000脉宽-------------角度----------pulse0.5ms-------------0度----------500;1.0ms------------45度---------1000;
【企业微信自建应用-前端篇】企业微信自建应用开发流程详细介绍
最近接到需求,需要我在企业微信端自建一个应用,用来接受PC端派发的工单,告警,公告等内容。这里写一个帖子汇总一下我经历的全流程开发,当然这是基础的流程啊。因为功能要求也不高。后面如果开发更多的东西再补充。
牛客网:给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)
题目描述 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 无序整数数组A[n] 输出描述: 满足条件的最大乘积 示例1 输入 3 4 1 2 输出 24 代码: #!D:/workplace/python # -*- coding: utf-8 -*- # @File : ...
VS code平台调试AutoLISP程序教程
VS code平台调试AutoLISP程序教程
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大
题目描述 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述 无序整数数组A[n] 输出描述 满足条件的最大乘积 示例1: 示例1 输入 3 4 1 2 输出 24 源代码 #include<vector> #include<iostream> #include <algorit...
【锂离子电池力学耦合及相场法模拟技术与应用】
8. 电化学仿真软件的使用与案例分析 (1) 各向异性纳米线锂化应力分析(实例讲解1) (2) 化学反应及死锂现象研究(案例分析2)(3) 锂化循环损伤计算(案例分析3)6. 4. 电池材料的力学与电化学耦合性能分析(1) 耦合效应对电池性能的影响(2) 耦合模型的验证与应。5. 5. 电池颗粒、极片、电芯尺度力-电-化-热多场耦合模型概述力学-7. 颗粒尺度耦合模型在电池失效分析中的应用。2. 2. 电池电极材料的分类与特性。5. (2) 耦合模型的验证与应用。电化学耦合模型与仿真。
告别虚拟机!在WSL2的Ubuntu里5分钟跑通LVGL v9.2图形界面(附SDL2配置避坑)
本文详细介绍了如何在WSL2的Ubuntu子系统中快速配置LVGL v9.2图形库的SDL2模拟环境,帮助嵌入式开发者在5分钟内跑通第一个图形界面示例。通过WSL2和VSCode的远程开发插件,实现Windows系统下无缝使用Linux工具链,大幅提升开发效率。
java笔试题-给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大
package com.zjp.offer.study; import java.io.IOException; import java.util.Scanner; /** * 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大. * 要求时间复杂度:O(n),空间复杂度:O(1) */ public class MaxProduct { public...
「API取数」FDL获取金蝶云星空的单据数据
本文介绍了如何使用FDL实现金蝶云API取数以及如何有效应对复杂的API数据处理场景。
从数组中找出乘积最大的三个数
题目: 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 无序整数数组A[n] 输出描述: 满足条件的最大乘积 输入例子1: 3 4 1 2 输出例子1: 24 思路: 由于空间复杂度和时间复杂度的要求,肯定无法先排序,因为排序最好时为O(n).整数的值任意需要分
深入理解JVM虚拟机第一篇:Java跨平台和字节码以及多语言混合编程
本位描述了Java的跨平台和JVM的跨平台的作用,Java语言的字节码的概念多语言混合编程应用到JVM虚拟机以及Java发展的重大事件。
【YOLO目标检测全栈实战】68 模型量化:从FP32到INT8,精度不掉,速度翻倍
摘要: 模型量化能显著提升推理速度(如YOLOv5s帧率从15FPS提升至38FPS),但需避免三大误区:1)校准集需覆盖实际场景,而非随机采样;2)敏感层(如检测头)应保留FP32精度;3)预处理必须与量化前后一致。通过混合精度量化(Backbone用INT8,检测头用FP32)和逐通道量化,可实现<1%的mAP损失。关键步骤包括校准数据准备、量化感知训练及逐层精度评估,最终在Jetson Nano等边缘设备上实现速度与精度的平衡。
O(n)求三个数乘积的最大值
题目描述 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 输入共2行,第一行包括一个整数n,表示数组长度 第二行为n个以空格隔开的整数,分别为A1,A2, … ,An 输出描述: 满足条件的最大乘积 示例1 输入 复制 4 3 4 1 2 输出 复制 24 //--无序数组...
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 输入共2行,第一行包括一个整数n,表示数组长度 第二行为n
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 输入共2行,第一行包括一个整数n,表示数组长度 第二行为n个以空格隔开的整数,分别为A1,A2, … ,An 输出描述: 满足条件的最大乘积 示例1 输入 复制 4 3 4 1 2 输出 复制 24 最暴力的方法,通过率55%,超...
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
无序数组最大乘积求解
题目: 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 思路如下: 先对数组进行排序 如果全为负数或全为正数,取最后三个数相乘既为最大乘积。关键是既有正数又有负数的情况(0其实可以看作负数)。如果...
LeetCode题练习与总结:三个数的最大乘积--628
本文详细介绍了如何在整型数组中找出由三个数组成的最大乘积,包括解题思路、具体代码实现、时间复杂度与空间复杂度分析以及涉及的知识点,为解决此类问题提供了清晰的指导。
长度为n的整形数组,找出其中的任意n-1个数乘积最大的那一组
问题描述:长度为n的整形数组,找出其中的任意n-1个数乘机最大的那一组,可以用乘法,但不能用除法,要求对算法处理的 时间复杂度和空间复杂度做出分析。 方法一: 首先能想到的一般方法就是暴力求解法。假设去掉第一个元素,求剩下n-1个乘积赋值给max,同时记录下下标index;然后假设第二个元素去掉,求剩下n-1个的乘积,若比前一个大则max等于当前值,index更新。重复此过程一直
最大乘积
来源: 牛客网2018校招真题 题目描述: 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 无序整数数组A[n] 输出描述: 满足条件的最大乘积 示例: 输入 4 3 4 1 2 输出 24 思路: 这道题包含三种情况,要找的这三个数全是正数,全是负数,有正有负,全是正...
寻找乘积最大的三个数
寻找乘积最大的三个数 题设要求:给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述:无序整数数组A[n] 输出描述:满足条件的最大乘积 输入例子1:3 4 1 2 输出例子1:24 问题分析:在数组中存在负数、正数、0的情况下,要获得三个数乘积最大,必然是最大的三个正数或者两个最小的负数和一个最大的正数。也就是说,...
拼多多笔试题一:给出一个无序整数数组,求任意三个数的最大乘积
题目: 给出一个可能包含正数、零、负数的无序整数序列,从该序列中任选三个数计算乘积,求最大的乘积是多少? 要求:算法的时间复杂度为O(n),空间复杂度为O(1). 输入: 第一行输入n表示序列中整数的个数 第二行输入n个整数 输出; 最大的乘积 例如: 输入: 4 1 0 -2 -4 输出: 8 import java.time.temporal.ValueRa
876



被折叠的 条评论
为什么被折叠?



