https://leetcode.cn/problems/maximum-product-of-two-elements-in-an-array/
每日一题
int maxProduct(int nums[], int n)
{int i,j;
int max=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(j!=i){
int x= (nums[i]-1)*(nums[j]-1);
if(x>max)
max=x;
}
}
}
return max;
}
n为数组长度
前两段for循环,遍历数组内所有元素,为下一步相乘做准备。如果j不等于i,则意味着相乘的两个数不为数组中的同一个数,之后两相乘。
里面的max记录相乘的积,如果后面两数的乘积比max大则替代原本的max成为新的max。不大于则继续进入上面的for循环进行判断(类似于排序的感觉)
因此最终的max肯定为数组内最大数乘以次大数
有更简单算法,但懒得写了。