首页 > 代码库 > [leetcode]N-Queens II

[leetcode]N-Queens II

问题描写叙述:

Follow up for N-Queens problem.

Now, instead outputting board configurations, return the total number of distinct solutions.

技术分享

(N-Queens problem can see here )

基本思路:

可參照N-Queens问题。依照N-Queens 问题稍作改动就可以。


代码:

public class Solution {  //java
        public int result;
	    public boolean check_pos(int index, int loop, int [] record){

            for(int i = 0; i < index; i++){
                if(record[i] == loop)
                    return false ;
                if(record[i]+i == index + loop)
                	return false ;
                if(record[i] -loop == i - index )
                	return false ;
            }  
	        return true;
	    }
	    
	    public void  subNQueen(int [] record,int index, int n){
	    	if(index == n){
                result++;	    	    
	    	}
	    	
		    for(int loop = 1; loop <=n; loop++){
		    	if(check_pos(index, loop, record)){
		    		record[index] = loop;
			        subNQueen(record,index+1,n);
			        record[index] = 0;
		    	}
		    }
	    
	    }
    public int totalNQueens(int n) {
        int index = 0;
	    int [] record = new int[n];
	    subNQueen(record,0,n);
	    return result;
    }
}


[leetcode]N-Queens II