每日小记-往返遍历:边界与方向控制
单向遍历常用双层for(i++或者i--)
需要往返的遍历数组的时候
可以采用两种方式:
1.俩for循环,用if+flag判断使用哪个
例如:
boolean flag=true;//正向
while(true){
	if(flag){
		for(int i=0;i<len;i++){
			......
			flag=!flag;
		}
	}else{
		for(int i=len-1;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
}
本文来自博客园,作者:荧惑微光,转载请注明原文链接:https://www.cnblogs.com/yinghuoweiguang/p/15933654.html
 
                    
                
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号