170
|
polygenelubricants · 技术社区 · 15 年前 |
![]() |
1
230
对…的解释 polygenelubricants 方法是: 诀窍是构造数组(在4个元素的情况下)
这两种方法都可以在o(n)中分别从左边缘和右边缘开始。 然后将两个数组元素相乘得到所需的结果 我的代码如下:
如果你在太空中也需要O(1),你可以这样做(不太清楚)
|
![]() |
2
48
这里是一个小的递归函数(在C++中)来进行建模。但它需要O(N)额外的空间(堆栈上)。假设数组在a中,n保持数组长度,则
|
![]() |
3
15
这是我尝试用Java解决它的方法。对非标准格式表示歉意,但代码有很多重复,这是我能做的最好的事情,以使其可读。
循环不变量是
递归一行
Jasmeet
给了一个(漂亮的!)递归解决方案;我把它变成了这个(可怕的!)爪哇一班轮。它确实
就地修改
用
|
![]() |
4
14
将迈克尔安德森的解决方案翻译成哈斯克尔:
|
![]() |
5
12
鬼鬼祟祟地规避“不分裂”规则:
|
![]() |
6
10
这里是一个简单明了的解决方案,具有O(N)复杂性:
|
![]() |
7
5
C++,O(n):
|
![]() |
8
5
o(n) |
![]() |
9
3
这是我在现代C++中的解决方案。它利用了
|
![]() |
10
2
这是o(n^2),但f是如此美丽:
|
![]() |
11
1
阿德里安·索斯: 使用以下选项:
是的,我肯定我错过了一些I-1而不是我,但这是解决问题的方法。 |
![]() |
12
1
还有一个o(n^(3/2)) 非最佳 解决方案。不过,这很有趣。 首先对大小为n^0.5的每个部分乘法进行预处理(这是在o(n)时间复杂度中完成的)。然后,可以在2*o(n^0.5)时间内计算每个数字的其他值'-倍数(为什么?因为只需要将其他((n^0.5)-1)数字的最后一个元素相乘,然后将结果与属于当前数字组的((n^0.5)-1)数字相乘。对每个数字这样做,可以得到o(n^(3/2))时间。 例子: 4 6 7 2 3 1 9 5 8 部分结果: 4×6×7=168 2×3×1=6 9×5×8=360 要计算3的值,需要将其他组的值168*360乘以2*1。 |
![]() |
13
1
我想出了这个解决方案,我发现它很清楚你怎么想!? |
![]() |
14
1
预先计算每个元素左边和右边数字的乘积。 对于每个元素,期望值都是其邻居产品的乘积。
结果:
(更新:现在我再仔细看一下,它使用的方法与上面的michael anderson、daniel migowski和polygeneloilutes相同) |
![]() |
15
1
arr=[1,2,3,4,5] PROD= 生产(arr,prod,0) 打印戳 |
![]() |
16
1
下面是scala中的代码:
这将打印出以下内容:
程序将过滤掉当前元素(!=elem);并用reduceleft方法乘以新列表。我认为如果您使用scala视图或迭代器进行延迟计算,那么这将是o(n)。 |
![]() |
17
1
基于billz的回答——抱歉,我不能发表评论,但这里有一个scala版本,它可以正确处理列表中的重复项,可能是o(n):
返回:
|
![]() |
18
1
在这里添加我的javascript解决方案,因为我没有发现任何人建议这样做。 什么是除法,除了计算从另一个数中提取一个数的次数之外?我计算了整个数组的乘积,然后遍历每个元素,将当前元素减至零:
|
![]() |
19
1
我习惯于C:
|
![]() |
20
0
这个解决方案可以被认为是C/C++。 假设我们有一个包含n个元素的数组“a” 像[n]一样,伪代码如下。
|
![]() |
21
0
还有一个解决方案,使用除法。两次穿越。 将所有元素相乘,然后开始除以每个元素。 |
![]() |
22
0
{- 使用sqrt(n)子集的递归解。在o(n)中运行。 递归地计算大小为sqrt(n)的sqrt(n)子集上的解。 然后在每个子集的乘积和上递归。 然后,对于每个子集中的每个元素,它用 所有其他产品的乘积和。 然后展平所有子集。 运行时的递归为t(n)=sqrt(n)*t(sqrt(n))+t(sqrt(n))+n 假设t(n)≤cn在o(n)中。 t(n)=sqrt(n)*t(sqrt(n))+t(sqrt(n))+n 小于等于sqrt(n)*c*sqrt(n)+c*sqrt(n)+n |
![]() |
23
0
这是我的代码:
|
![]() |
24
0
下面是一个稍微有用的例子,使用c:
我不是 完全地 肯定这是o(n),因为创建的函数是半递归的,但是我的测试似乎表明它是o(n)及时的。 |
![]() |
25
0
//这是Java中的递归解决方案 //从主产品(A,1,0)调用如下;
|
![]() |
26
0
O(N)运行时的整洁解决方案:
|
![]() |
27
0
|
![]() |
28
0
下面是另一个简单的概念,它解决了
|
![]() |
29
0
我们可以排除
|
![]() |
30
0
我有个解决办法
|
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 7 月前 |
![]() |
bairog · 从按属性筛选的对象数组字典中创建值数组 7 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 8 月前 |
![]() |
Geremia · 2D NumPy数组+1D数组? 8 月前 |
![]() |
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 9 月前 |
![]() |
Paul Williams · 迭代数组时输出有问题 9 月前 |