zoukankan      html  css  js  c++  java
  • LeetCode——N-Queens II

    Follow up for N-Queens problem.

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

    原题链接:https://oj.leetcode.com/problems/n-queens-ii/

    题目:求有多少个独立的解决方式。

    与上题一致,仅仅要每次成功后记录一下次数就可以。

    package leetcode;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class NQueensII {
    	public static void main(String[] args) {
    		System.out.println(new NQueensII().totalNQueens(5));
    	}
    	int res = 0;
        public int totalNQueens(int n) {
    		List<String[]> result = new ArrayList<String[]>();
    		List<Integer> cols = new ArrayList<Integer>();
    		if(n <= 0)
    			return 0;
    		search(result,cols,n);
    		return res;
        }
    	public void search(List<String[]> result,List<Integer> cols,int n){
    		if(cols.size() == n){
    			result.add(draw(cols));
    			res++;
    			return;
    		}
    		for(int col=0;col<n;col++){
    			if(!isValid(cols,col))
    				continue;
    			cols.add(col);
    			search(result,cols,n);
    			cols.remove(cols.size()-1);
    		}
    	}
    	
    	public String[] draw(List<Integer> cols){
    		String[] chess = new String[cols.size()];
    		for(int i=0;i<chess.length;i++){
    			chess[i] = "";
    			for(int j=0;j<cols.size();j++){
    				if(j==cols.get(i))
    					chess[i] += "Q";
    				else
    					chess[i] += ".";
    			}
    		}
    		return chess;
    	}
    	public boolean isValid(List<Integer> cols,int col){
    		int row = cols.size();
    		for(int i=0;i<row;i++){
    			if(cols.get(i) == col)
    				return false;
    			if(i - cols.get(i) == row - col)
    				return false;
    			if(i+cols.get(i) == row+col)
    				return false;
    		}
    		return true;
    	}
    }
    



  • 相关阅读:
    cannot resolve symbol 'XXX'
    jwt单点登入
    空3
    Hibernate持久化,生命周期
    Hibernate主键生成策略
    Hibernate常用api以及增删改查
    Hibernate配置流程
    Hibernate定义
    Git总结
    spring整合MQ
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4357814.html
Copyright © 2011-2022 走看看