有没有办法优化以下程序,我试图通过给定的输入参数旋转数组

时间:2016-02-22 05:58:12

标签: functional-programming

您认为以下代码可以进一步优化吗?

我正在使用两个for循环,我认为它可以减少到更好的东西。欢迎任何建议。

public ArrayList<Integer> rotateArray(ArrayList<Integer> A, int B) {
  ArrayList<Integer> ret = new ArrayList<Integer>();
  B = B % A.size();
  boolean flag = false;
  for (int i = B; i < A.size(); i++) {         
      ret.add(A.get(i));                     
  }
  for (int i = 0; i < B; i++) {
      ret.add(A.get(i));        
  }     
  return ret;
 }
}

1 个答案:

答案 0 :(得分:0)

如果你想要一个算法,当然有更好的方法来实现它。想一想:

您将获得一个输入三个参数的函数: 数组, 一个起始指数 和结束指数

然后在反转这些开始和结束索引之间的元素之后返回相同的数组。

类似的东西:

func([1,2,3,4,5],2,4)==&gt; 1,2,5,4,3

您将如何使用此功能来实现所需的输出?