Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 对于可能包含大小为n和大小为n的数组的映射,空间复杂度是多少_Java_Arrays_Algorithm_Sorting_Data Structures - Fatal编程技术网

Java 对于可能包含大小为n和大小为n的数组的映射,空间复杂度是多少

Java 对于可能包含大小为n和大小为n的数组的映射,空间复杂度是多少,java,arrays,algorithm,sorting,data-structures,Java,Arrays,Algorithm,Sorting,Data Structures,我有一个名为int[]afterClassification(int[]nums)的函数,它根据nums数组的大小对数组中的元素进行分类。对于例如:nums=[7,9,8],返回[1,3,2] (7是最小值,因此其等级为1;9是最大值,因此其等级为3;8是第二大值,因此其分类为2) 我为此实现了一个代码: publicstaticint[]afterClassification(int[]nums){ int length=nums.length; int[]结果=新的int[长度]; int[

我有一个名为
int[]afterClassification(int[]nums)
的函数,它根据nums数组的大小对数组中的元素进行分类。对于例如:nums=[7,9,8],返回[1,3,2]

(7是最小值,因此其等级为1;9是最大值,因此其等级为3;8是第二大值,因此其分类为2)

我为此实现了一个代码:

publicstaticint[]afterClassification(int[]nums){
int length=nums.length;
int[]结果=新的int[长度];
int[]clonedArray=nums.clone();
排序(clonedArray);
Map Map=newhashmap();
int秩=0;
for(整数编号:clonedArray){
如果(!map.containsKey(编号)){
秩+=1;
地图放置(编号、等级);
}
}

对于(inti=0;i空间复杂度为O(n),时间O(n*logn)是因为排序,这是问题吗?空间复杂度仍然是O(n)即使您有两个数据结构保存数据。顺便说一句,您的算法在分类最小、最大等方面不正确。它只获取数组中元素的顺序。如果输入是
[7,9,8,7]
@Rocco,结果会是什么?我的问题是只知道空间复杂度空间复杂度是O(n),正如您正确指出的,映射最多为N,两个数组各为N,因此总数为