public static int min1(int[] a) {
if (a.length < 1)
throw new IllegalArgumentException("a is empty");
int m = 0;
for (int i = 1; i < a.length; i++) {
if (a[i] < a[m]) m = i;
}
return m;
}
给出的输入:
a = {4, 17, 10, 6, 1, 15, 3, 18}
我试图逐步解决这个问题。查看每个简单表达式和for循环。如果声明 - &gt; 2 int m = 0 - &gt; 2(声明和初始化)。我最后得到了48个答案。
我听说有可能将此简化为函数:
6(n-1)+x+9
其中n是数组中的总元素,其中x是if语句出现的次数,即1。我知道这个方法有一个O(n)运行时。 正确答案是52。
我想了解我们如何能够推导出这个功能。它背后的逻辑。
提前致谢!