拼多-最大積-c/c++
[プログラミング問題]最大積
時間制限:1秒空間制限:32768 K
正数、負数、0を含む無秩序配列が与えられ、そこから3つの数の積を探し出し、積が最大になるようにすることが要求される.
要求時間複雑度:O(n),空間複雑度:O(1)
説明を入力:
無秩序整数配列A[n]
出力の説明:
条件を満たす最大積
入力例1:
4
3 4 1 2
出力例1:24
試験問題の分析:
2つの場合の結果は、最大値(1)の2つの負の数と1つの正の数(2)の3つの正の数である可能性があります.
オーバーフローが発生する可能性があるので、ここではlongを採用します
本人は先の順序付けの方法を採用して、具体的にどの順序付けを採用してテーマの中の要求に合致する限りすべて喜んで、本文は純粋に個人の見解で、参考に供して、多く貴重な意見を提出します
時間制限:1秒空間制限:32768 K
正数、負数、0を含む無秩序配列が与えられ、そこから3つの数の積を探し出し、積が最大になるようにすることが要求される.
要求時間複雑度:O(n),空間複雑度:O(1)
説明を入力:
無秩序整数配列A[n]
出力の説明:
条件を満たす最大積
入力例1:
4
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)<
本人は先の順序付けの方法を採用して、具体的にどの順序付けを採用してテーマの中の要求に合致する限りすべて喜んで、本文は純粋に個人の見解で、参考に供して、多く貴重な意見を提出します