题目来源
代码实现
#include<stdio.h>
int* sort(int a[], int n)
{
int i, j, temp;
for (i = 0; i < n - 1; i++) //比较n-1次(第一次循环表示趟数)
{
for (j = 0; j < n - i - 1; j++) // 最后一次比较a[n-i-1]与a[n-i-2] (第二次循环表示比较次数 )
{
if (a[j] < a[j + 1])
{
temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;
}
}
}
return a;
}
int sum = 1;
int i = 0;
int FindMaxi(int* nums, int numsSize)
{
for (i = 0; i < numsSize; i++)
{
if (nums[i] > 0 && nums[i + 1] < 0) return i;
}
}
int maximumProduct(int* nums, int numsSize)
{
if (numsSize < 3) return 0;
if (numsSize == 3)
{
for (int i = 0; i < numsSize; i++) sum *= nums[i];
return sum;
}
else
{
sort(nums, numsSize);
int ret1 = nums[0] * nums[1] * nums[2];//nums全正全负情况
int ret2 = nums[0] * nums[numsSize-1] * nums[numsSize-2];
return ret1>ret2 ? ret1:ret2;
}
}
int main()
{
int a[3] = { -1,-2,-3};
printf("%d\n",maximumProduct(a, 3));
return 0;
}
在自己电脑上运行是对的
兄弟们帮忙看下,哪里有错,为什么力扣那通不过!!!!!