拼多-最大積-c/c++


[プログラミング問題]最大積
時間制限:1秒空間制限:32768 K
正数、負数、0を含む無秩序配列が与えられ、そこから3つの数の積を探し出し、積が最大になるようにすることが要求される.
要求時間複雑度:O(n),空間複雑度:O(1)
説明を入力:
無秩序整数配列A[n]
出力の説明:
条件を満たす最大積
入力例1:

3 4 1 2
出力例1:24
試験問題の分析:
2つの場合の結果は、最大値(1)の2つの負の数と1つの正の数(2)の3つの正の数である可能性があります.
オーバーフローが発生する可能性があるので、ここではlongを採用します
#include 
using namespace std;
void selectSort(long n,long a[])
{
	for(int i=0;ia[j])
			{
				k=j;
			}
		} 
		if(i!=k)
		{
			temp=a[k];
			a[k]=a[i];
			a[i]=temp;

		}
	}
	
} 
int main(int argc, char *argv[])
{
	long n,s1,s2,b=0;
	cin>>n;
	long *A=new long[n];
	for(int i=0;i>*(A+i);
	}
	selectSort(n,A);
	s1=A[n-1]*A[n-2]*A[n-3];//      
	s2=A[n-1]*A[0]*A[1];//        
	cout<s2?s1:s2)<

本人は先の順序付けの方法を採用して、具体的にどの順序付けを採用してテーマの中の要求に合致する限りすべて喜んで、本文は純粋に個人の見解で、参考に供して、多く貴重な意見を提出します