从两端开始向中心遍历列表
Traverse a list starting from ends and towards the centre
假设我有一个这样的列表:
[4, 5, 7, 2, 3, 1, 9]
我希望它的遍历是这样的:
4, 9, 5, 1, 7, 3, 2
有人可以分享解决方案吗?解决方案可以与语言无关——甚至伪代码也可以。
我想到的一个解决方案是制作一个双端队列并从备用端出列元素。但问题是我想多次遍历这个列表,出队将删除这些元素以备将来使用。有没有其他解决方案可以避免我每次在按我想要的顺序遍历队列之前都复制队列?
怎么样:
i = 0;
j = arr.size() - 1;
while(i < j){
print(arr[i++]);
print(arr[j--]);
}
// center still needs to be printed
if(i == j){
print(arr[i]);
}
假设我有一个这样的列表:
[4, 5, 7, 2, 3, 1, 9]
我希望它的遍历是这样的:
4, 9, 5, 1, 7, 3, 2
有人可以分享解决方案吗?解决方案可以与语言无关——甚至伪代码也可以。
我想到的一个解决方案是制作一个双端队列并从备用端出列元素。但问题是我想多次遍历这个列表,出队将删除这些元素以备将来使用。有没有其他解决方案可以避免我每次在按我想要的顺序遍历队列之前都复制队列?
怎么样:
i = 0;
j = arr.size() - 1;
while(i < j){
print(arr[i++]);
print(arr[j--]);
}
// center still needs to be printed
if(i == j){
print(arr[i]);
}