尽可能优化(减少空间和时间复杂度)此功能。
public void q1(String str, int[] arr)
{
String local = "findnumber";
for(int i=0; i<arr.length; i++)
{
if(str.equals(local) && arr[i] * 2 > 10)
{
Integer in = new Integer(arr[i]);
in = in * 2;
System.out.print(in.toString());
}
}
}
答案 0 :(得分:3)
看起来像家庭作业,但我会咬人。这就是我得到的......
str.equals(local)
可以在循环外计算(可能会阻止你进入循环)arr[i]
的值以阻止其被查找
多次in *= 2
理论上比in = in * 2
(或i
如果你杀死in
一样快)arr[i] * 2
,因此请计算一次并在if
和输出中使用它。 (根本不需要in=in*2
或in*=2
)