首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从数组中求每一对整数绝对差的乘积

从数组中求每一对整数绝对差的乘积
EN

Stack Overflow用户
提问于 2020-03-03 16:24:31
回答 1查看 439关注 0票数 3

给定一个数组,找出每一对整数绝对差的乘积。

例如:给定a[]= {2,3,5,7 };

输出为(3-2) * (5-2) * (7-2) * (5-3) * (7-3) * (7-5) = 240.

编辑:所有元素都是不同的。

EN

回答 1

Stack Overflow用户

发布于 2020-03-03 16:38:28

如果您必须计算绝对差之和,那么这将是您的解决方案

基本上,如果你取一个任意的数字,让我们把它命名为x,那么你就有了它

M*x-n* x,

其中m是小于x的项目数,n是大于x的n个项目数。因此,如果由于某种原因,您有一个排序数组,那么每个项的索引将直接告诉您,如果数组中的项是唯一的,则多少更大或更小的项。如果没有,那么您也可以确定较高和较低元素的数量。

因此,如果数组是排序的,则计算结果是线性的。如果数组完全未排序,则排序是n* log(n),如果使用mergesort的话。因此,复杂性是

O(n +n* log (n )) =(n+ 1)log(n)

但是对于绝对差的乘积,

你有一个形式的乘积

(a1 - b1) *(.)

由于您有减法的乘积,为了找到可用于优化的模式,您需要更多关于数据的信息。你所输入的内容似乎包含素数。…的乘积

(a1 - b1) * (a2 - b2)

a1a2 - a1b2 - b1a2 + b1b2

我不知道可以用于优化的任何模式,所以我认为这具有O(n^2)的复杂性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60511590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档