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



你认为下面的代码可以进一步优化吗?

我正在使用两个 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;
 }
}

如果你更愿意要求一种算法,当然有更好的方法来实现它。思考:

给你一个函数,它接受输入三个参数:一个数组,起始索引和结束索引

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

像这样:

func([1,2,3,4,5],2,4) ==> 1,2,5,4,3

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

最新更新