倒序遍历数组,不使用减号。
倒序遍历数组,不使用减号。
今天我在一次面试中被问到了这个问题。我相信这是一个相当简单的技巧,但我想不出来。如何遍历一个简单的Java数组,从结尾到开始(例如,为了从右到左累加所有值的总和),不使用 \"减号\" (-
) 符号(因此在循环中没有 i--
或类似的东西)?
编辑:我很确定它应该是一个没有涉及Java特定结构(如 Collections
)的技巧。不幸的是,我认为我过一会儿会自己想出来,所以我没问答案是什么 : /
admin 更改状态以发布 2023年5月21日
递归是一个选项:
int[] numbers = {0,1,2,3,4,5,6,7,8,9,10}; public void traverseReversed(int[] a) { traverseReversed(a, 0); } private void traverseReversed(int[] a, int i) { if ( i + 1 < a.length ) { // Traverse the rest of the array first. traverseReversed(a, i+1); } System.out.println(a[i]); } public void test() throws Exception { System.out.println("Hello world!"); traverseReversed(numbers); }