【发布时间】:2017-02-14 01:54:30
【问题描述】:
我试图了解算法的时间复杂性并遇到了这个问题。问题是计算区间总和(0
public static void main(String args[]){
LinkedList<Integer> l=new LinkedList<Integer>();
l.add(4);
l.add(2);
l.add(3);
l.add(1);
l.add(5);
int k=2;
List result = new ArrayList();
int n = l.size();
for(int i = 0; i < n; i++){
if(i >= k-1){
int sum = 0;
for(int j = i; j >= i-k+1; j--){
sum += in.get(j);
}
result.add(sum);
}
}
System.out.println(result);
}
谁能解释一下上述代码的时间复杂度?是 n*k 还是 n^2(因为 k 的最大值是 n)。 if 条件会影响时间复杂度吗?
【问题讨论】:
标签: java algorithm time time-complexity