如何减少以下代码的时间和空间复杂性

时间:2013-06-04 04:11:33

标签: java time-complexity space-complexity

尽可能优化(减少空间和时间复杂度)此功能。

  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());
            } 
        } 
   } 

1 个答案:

答案 0 :(得分:3)

看起来像家庭作业,但我会咬人。这就是我得到的......

  • str.equals(local)可以在循环外计算(可能会阻止你进入循环)
  • 您可以存储arr[i]的值以阻止其被查找 多次
  • 为什么在你做数学的时候从i创建一个Integer?
  • in *= 2理论上比in = in * 2(或i如果你杀死in一样快)
  • 由于您使用的只有arr[i] * 2,因此请计算一次并在if和输出中使用它。 (根本不需要in=in*2in*=2
  • 缓冲输出,并在结尾处只有一个输出语句 循环。