【发布时间】:2017-09-20 15:18:55
【问题描述】:
所以,我知道我的想法错了,但我对所有三段代码的回答是它们都是 O(n^2)。
如果我错了,谁能告诉我?
如果是,你能帮我想想如何解决类似的问题。提前谢谢!
public static int firstLoop(int[] arr) {
int sum = 0; int n = arr.length;
int limit = n * n;
for ( int j = 0; j < limit; j += 2 ) {
sum = (sum + arr[j / n] ) % 100;
}
return sum; }
public static int withLoop(int[] arr) {
int sum = 0; int n = arr.length;
int j = 1;
int limit = n * n;
for ( j= limit - 1; j > 0; j /= 2 ) {
sum = (sum + arr[j / n] ) % 100; }
return sum; }
public static int fwLoop(int[] arr)
{ int sum = 0;
int n = arr.length;
int limit = n * n;
for ( int k = 0; k < limit; k += 2 ) {
int t = 1; for ( j = limit - 1; j > 0; j /= 2 ) {
t = (t + arr[j / n] ) % 100;
} sum = (sum + t + arr[k / n] ) % 200;
} return sum;
}
【问题讨论】:
-
请编辑问题并格式化您的代码。
-
感谢您的编辑!我不知道要对问题进行哪些更改以使其更具针对性..