美文网首页
试题1:最大乘积

试题1:最大乘积

作者: PersisThd | 来源:发表于2019-07-07 15:05 被阅读0次

试题描述:
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)
解题思路:
要想乘积最大,只有两种情况,一是最大的三个数相乘,二是最大的数和最小的两个数相乘。因此先对数组中的元素进行排序,然后再计算这两种情况的乘积进行比较,返回最大值。

//代码如下
#include <stdio.h>
#include <math.h>

long long maxmulti(long *p, int n)
{
    int i = 0, j=0;
    //int max1, max2;
    int tmp = 0;
    //max1 = p[0];
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-i-1;j++)
        {
            if(p[j]<p[j+1])
            {
                tmp = p[j];
                p[j] = p[j+1];
                p[j+1] = tmp;
            }
        }
    }
    
    long long maxmulti1 = p[0] * p[1] * p[2];
    long long maxmulti2 = p[0] * p[n-1] * p[n-2];
    if(maxmulti1 > maxmulti2)
    {
        return maxmulti1;
    }
    else
    {
        return maxmulti2;
    }
    //return maxmulti3;
    
}
int main()
{
    int n;
    //printf("Please enter the length of the array: ");
    scanf("%d", &n);
    //int n;
    long a[n];
    //printf("please enter the number of the array:");
    for(int i=0; i<n; ++i)
    {
        scanf("%ld", &a[i]);
    }
    long long max3 = maxmulti(a, n);
    printf("%lld\n", max3);
    
    return 0;
}

相关文章

  • 试题1:最大乘积

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

  • 乘积最大子序列

    题目描述 解题思路 动态规划,从0-i的子数组的最大乘积为max,最小乘积为min,则0-i+1的最大乘积为 i+...

  • LeetCode-152-乘积最大子数组

    LeetCode-152-乘积最大子数组 152. 乘积最大子数组[https://leetcode-cn.com...

  • LeetCode 152. 乘积最大子序列(Maximum Pr

    152. 乘积最大子序列 乘积最大子序列给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至...

  • 动态规划

    求最大子数组,最大子乘积

  • 最大乘积子序列问题

    给一个浮点数序列,取最大乘积子序列的值,例如 -2.5,4,0,3,0.5,8,-1,则取出的最大乘积子序列为3,...

  • 2019-10-27

    今天做最大k乘积问题

  • [43]整数乘积最大化-招商银行信用卡中心2018秋

    1.题目描述 给出一个整数n,将n分解为至少两个整数之和,使得这些整数的乘积最大化,输出能够获得的最大的乘积。例如...

  • 628. 三个数的最大乘积

    给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例 1: 输入: [1,2,3]输出: ...

  • 三个数的最大乘积

    给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例 1: 输入: [1,2,3]输出: ...

网友评论

      本文标题:试题1:最大乘积

      本文链接:https://www.haomeiwen.com/subject/dylazqtx.html