leetcode每日一题(20241202)

leetcode每日一题(20241202)

52 N 皇后 题目描述:

bash 复制代码
n 皇后问题 研究的是如何将 n 个皇后放置在 n × n 的棋盘上,并且使皇后彼此之间不能相互攻击。
按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。
给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。

n皇后问题,之前看过一个软考的讲的很清晰,就是放一个然后就去和之前的已经放好的皇后位置去挨个比较当前放的这个皇后位置是否合法,直到放完所有的棋牌。

java 复制代码
class Solution {
    public int totalNQueens(int n) {
        int[] pre=new int[n+1];
        int count=0;
        int j=1;
        while(j>=1){
            do{
            // 从棋盘的第一个开始试探方知皇后
                pre[j]=pre[j]+1;
            }while(pre[j]<=n&&!check(pre,j));
            if(pre[j]<=n){
                if(j==n){
                    count++;
                }else{
                    j++;
                }

            }else{
                pre[j]=0;
                j--;
            }
        }
        return count;
    }
    // 检测当前位置是否和之前的已经放的皇后位置发生冲突
    public boolean check(int[] pre,int j){
        for(int i=1;i<j;i++){
            if(pre[i]==pre[j]||Math.abs(i-j)==Math.abs(pre[i]-pre[j])){
                return false;
            }
        }
        return true;
    }
}

加油!!!好久没写了。

相关推荐
2601_956121974 小时前
背包基础篇(01、完全、分组、多重、混合)
c++·算法·动态规划
Java牛马4 小时前
SpringBoot Starter 依赖相关总结
java·spring·springboot·starter·自动装配·依赖
吴声子夜歌4 小时前
Java面试——Spring Cloud原理及应用(二)
java·spring cloud·面试
东小西5 小时前
【SAA实战】第 1 篇:ReactAgent 入门——先撸个"会调工具的助手"跑起来
java·人工智能·spring
兴通物联科技5 小时前
SMT PCB 微小 DataMatrix 码扫不动问题分析 兴通 XT8601B 600 万像素工业读码器落地实践
大数据·人工智能·单片机·嵌入式硬件·算法·计算机视觉
mqiqe5 小时前
AgentScope Java 2.0 协议集成全景解析:A2A、AG-UI、Agent Protocol 三大开放协议实战指南
java·开发语言·ui
脉动数据行情6 小时前
Java 实现台股 TWSE/TPEx 行情采集(个股 + K 线)
java·开发语言·twse·tpex·台股
月华路7 小时前
G1 GC 对数组与大对象(Humongous)的处理
java·jvm·算法
我想走路带风7 小时前
LRU和最长前缀和(计算机网络算法)
计算机网络·算法