八皇后问题-一维数组

2019-04-03  本文已影响0人  JaJIng
public static class Queue8{
    private  int[] queens= new int[8];
    
    private  int count=0;

    public  void put(int curCol){
        System.out.println("put("+curCol+")");
        if(curCol==8) {
            count++;            
            return;
        }
        for(int row=0;row<8;row++) {
            queens[curCol]=row;
            //System.out.println("queens["+queens[curCol]+"]"+"="+row);
            if(check(curCol,row)) {
                //System.out.println(Arrays.toString(queens));
                put(1+curCol);
            }
        }
        
    }
    
    public  boolean check(int curCol,int putRow) {
        for(int i=0;i<curCol;i++) {
            if(queens[i]==putRow|| Math.abs(queens[i]-putRow)==Math.abs(curCol-i)) {
                //System.out.println("check ("+curCol+","+putRow+");false");
                return false;
            }
        }
        //System.out.println("check ("+curCol+","+putRow+");true");
        return true;
    }
}
上一篇下一篇

猜你喜欢

热点阅读