每日小记-往返遍历:边界与方向控制
单向遍历常用双层for(i++或者i--)
需要往返的遍历数组的时候
可以采用两种方式:
1.俩for循环,用if+flag判断使用哪个
例如:
boolean flag=true;//正向
while(true){
if(flag){
for(int i=0;i=0;i--){
......
flag=!flag;
}
}
}
2.每次撞到边界更改计数器的累加值(-1,+1)
int i=0;
boolean flag=false;//因为第一个遍历到的就是0边界,要变向,所以保证第一圈是正向,设置flag为逆向
while(true){
....
if(i==0||i==len-1){
flag=!flag;
}
i+=flag?1:-1;//正向+1,逆向-1
}