每日小记-往返遍历:边界与方向控制


单向遍历常用双层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
}