Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 请帮我理解这个密码测试_Java_Algorithm - Fatal编程技术网

Java 请帮我理解这个密码测试

Java 请帮我理解这个密码测试,java,algorithm,Java,Algorithm,考虑到下面的可变性测试: 给定一个由N整数组成的数组A,我们在二维平面上绘制N圆盘,使得I-th 圆盘以(0,I)为中心,半径为a[I]。我们说,J-th光盘和 K-如果J,则第个圆盘相交≠ K和J-th和K`-th光盘至少有一个通用光盘 重点 编写一个函数类解决方案{public int Solution(int[]a);}给定一个数组 AdescriptionNdiscs如上所述,返回相交的成对数 光盘。例如,给定N=6和: A[0]=1A[1]=5A[2]=2 A[3]=1A[4]=4A[

考虑到下面的可变性测试:

给定一个由
N
整数组成的数组
A
,我们在二维平面上绘制
N
圆盘,使得
I
-th 圆盘以
(0,I)
为中心,半径为
a[I]
。我们说,
J
-th光盘和 K
-如果
J,则第个圆盘相交≠ K
J
-th和
K`-th光盘至少有一个通用光盘 重点

编写一个函数
类解决方案{public int Solution(int[]a);}
给定一个数组
A
description
N
discs如上所述,返回相交的成对数 光盘。例如,给定
N=6
和:

A[0]=1A[1]=5A[2]=2

A[3]=1A[4]=4A[5]=0

相交的圆盘出现在11对元素中:

0和1,
0和2,
0和4,
1和2,
1和3,
1和4,
1和5,
2和3,
2和4,
3和4,
4和5

因此函数应该返回
11

函数应返回
−1
如果相交对数超过10000000。
假设:

-
N
是范围
[0..100000]
内的整数
-数组A的每个元素都是[0..2147483647]范围内的整数

复杂性

  • 期望的最坏情况时间复杂度为O(N*log(N))
  • 预计最坏情况下的空间复杂度为O(N),超出输入存储(不计算 输入参数所需的存储)

这11对来自哪里,因为只有6个元素?

只有6个元素,但可能的对数是
6*5/2=15
(一般形式:
n(n-1)/2)
),因此,即使有6个点,也可能有多达15个(包括)交点,如上所述

磁盘数量不是最大的15个,因为一些“磁盘”不相交,例如,磁盘
(0,0)
和磁盘
(0,5)
没有公共点
(0,0)
包括点
{(0,0)、(0,1)}
(0,5)
磁盘包括点
{(0,5)}


由于这两组的交点为空-
(0,0);(0,5)
不是有效的磁盘对,不应包括在内。

这11对磁盘与问题中所列的磁盘完全相同。每个光盘的中心位于
(0,I)
,因此每个光盘与其两个相邻光盘之间的距离为1个单位(光盘0和光盘N-1除外,它们只有一个相邻光盘)。对于给定的特定数组:

  • 光盘0的半径为1,因此它与光盘1相交
  • 圆盘1的半径为5,因此它与圆盘0、2、3、4、5相交
  • 圆盘2的半径为2,因此它与圆盘0、1、3、4相交
  • 盘3的半径为1,因此它与盘2、4相交
  • 圆盘4的半径为4,因此它与圆盘0、1、2、3、5相交
  • 圆盘5的半径为0,因此它与没有圆盘的物体相交

如果你只从这个列表中计数唯一的对(例如2个相交的3个和3个相交的2个,这是一个),这是11个交点。

这两个对是从两个元素的30个可能组合中选择的,使用给定的规则。我认为我们需要考虑组合而不是排列。因此,这些对来自于在
C(n,r)=C(6,2)
非常有用的解释中选择两个元素的15种可能组合