Java 两个和的空间复杂性

Java 两个和的空间复杂性,java,algorithm,space-complexity,Java,Algorithm,Space Complexity,我写了一段两个和的代码: public static int[] twoSums0(int[] nums, int target){ for(int i=0;i<nums.length;i++){ for(int j=i+1;j<nums.length;j++){ if(nums[i] == target-nums[j]){ return new int[]{i,j}; }

我写了一段两个和的代码:

public static int[] twoSums0(int[] nums, int target){

    for(int i=0;i<nums.length;i++){
        for(int j=i+1;j<nums.length;j++){
            if(nums[i] == target-nums[j]){
                return new int[]{i,j};
            }
        }
    }
    throw new IllegalArgumentException("No solution");
}
公共静态int[]twoSums0(int[]nums,int目标){

对于(int i=0;i要计算空间复杂度,必须分析由方法创建的所有对象和基本体的渐进大小。不包括输入的大小

此方法最多创建一个由2个元素组成的数组(除了用于循环索引的2个原语之外)。因此,它需要恒定的空间(即
O(1)
空间复杂度)


如果您想使用
HashMap
来提高此方法的时间复杂度,我假设您将把输入数组的所有元素添加到该
HashMap
,这将需要
O(n)
空间。

要计算空间复杂度,必须分析由方法创建的所有对象和基本体的渐进大小。不包括输入的大小

此方法最多创建一个由2个元素组成的数组(除了用于循环索引的2个原语之外)。因此,它需要恒定的空间(即
O(1)
空间复杂度)

如果要使用
HashMap
来提高此方法的时间复杂度,我假设将输入数组的所有元素添加到该
HashMap
,这将需要
O(n)
空间