给定无序整数数组,包含正数,负数和0,求三个数的乘积最大

这里写图片描述

2019届大疆测试最后的大题

如上图所示,代码如下:

public class Demo
{
    public static int mul(int arr[]) 
    {
        int len=arr.length-1;
        int max=1, sec_max=1,thi_max=1;
        int min=1,sec_min=1;
        for(int i=0;i<=len;i++)
        {
            if(arr[i]>max)
            {
                thi_max=sec_max;
                sec_max=max;
                max=arr[i];
            }
            if(arr[i]>sec_max  && arr[i]<max)
            {
                thi_max=sec_max;
                sec_max=arr[i];
            }
            if(arr[i]>thi_max  && arr[i]<sec_max)
            {
                thi_max=arr[i];
            }
            if(arr[i]<min)
            {
                sec_min=min;
                min=arr[i];
            }
            if(arr[i]<sec_min  && arr[i]>min)
                sec_min=arr[i];

        }
            int a=max*sec_max*thi_max;
            int b=max*min*sec_min;
            if(a>b)
                return a;
            return b;
    }

    public static void main(String[] args)
    {

        int[] arr={2,3,9,0,-9,15,-13};
        int a=mul(arr);
        System.out.println(a);

    }

}

猜你喜欢

转载自blog.csdn.net/weixin_41961130/article/details/81046562