news 2026/5/1 9:11:34

day79(2.7)——leetcode面试经典150

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
day79(2.7)——leetcode面试经典150

52. N 皇后 II

52. N皇后Ⅱ

我以前写这题的时候就没搞明白,她是怎么计算两边的对角线的,然后我今天自己推了一下,但是我是横竖进行遍历,传的参数是放了几个皇后,导致不仅时间复杂度很高,而且还可能导致一行里面有多个皇后,还导致搜索空间爆炸,所以应该采用dfs传入行数这一个参数,然后遍历每列的每一个

N 皇后问题有一个隐含但必须遵守的约束

每行只能放一个皇后

void dfs(int x, int y, int t) { for (int i = x; i < w; i++) { for (int j = y; j < w; j++) { // 尝试在 (i,j) 放皇后 } } }

会导致:

  1. 同一行可能放多个皇后
    • 比如先在(0,0)放一个,回溯后又在(0,1)放一个 → 违反规则!
  2. 大量重复解
    • 皇后顺序不同但位置相同(如先放 (0,0) 再放 (1,1),或先放 (1,1) 再放 (0,0))会被算作两个解
  3. 搜索空间爆炸
    • 你是在所有格子中“任意选 k 个不冲突的位置”,而不是“每行选一个”

✅ 正确策略:按行递归,每行只放一个皇后

标准做法是:

  • t层 DFS 处理第t
  • 在该行尝试每一列j
  • 这样天然保证每行一个皇后,且不会重复计数

题目:

题解:

class Solution { int w; //竖 boolean[] col; //左对角线——x+y boolean[] left; //右对角线——w-1+y-x boolean[] right; int res; //以行数为参数 void dfs(int row) { if(row==w) { res++; return; } for(int j=0;j<w;j++) { if(col[j]==false&&left[row+j]==false&&right[w-1+j-row]==false) { //放皇后 col[j]=true; left[row+j]=true; right[w-1+j-row]=true; dfs(row+1); //恢复现场 col[j]=false; left[row+j]=false; right[w-1+j-row]=false; } } } public int totalNQueens(int n) { w = n; col = new boolean[n]; left = new boolean[2*n]; right = new boolean[2*n]; res = 0; dfs(0); return res; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 7:32:13

【小程序毕设全套源码+文档】基于Android的高校心理咨询系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/30 8:35:44

从 SAS 到 MAS:构建高效、可扩展的 AI Agent 架构演进

本文基于 Building Conversation Kernels for AI Agents 中的核心示意图与文字内容&#xff0c;总结当前主流 Agent 架构的演进路径&#xff0c;并结合图示拆解其设计动机、优缺点与适用场景。 一、背景&#xff1a;为什么需要新的 Agent 架构&#xff1f; 随着 AI Agent 从单…

作者头像 李华
网站建设 2026/5/1 7:32:11

大数据Storm:为企业实时数据处理保驾护航

大数据Storm&#xff1a;为企业实时数据处理保驾护航 1. 引入与连接 1.1 引人入胜的开场 想象一下&#xff0c;一家大型电商企业正在进行一场盛大的促销活动。在活动期间&#xff0c;每秒有成千上万的用户访问网站&#xff0c;产生大量的交易数据、用户行为数据。企业需要立刻分…

作者头像 李华
网站建设 2026/5/1 6:18:42

【小程序毕设源码分享】基于springboot+Android宠物饲养管理APP的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/19 19:22:47

三星研究院MeKi:手机ROM存储空间赋能大模型高效运行

这项由三星研究院中国和韩国团队联合完成的突破性研究于2026年1月发表在AI Model TF期刊上&#xff0c;论文编号为arXiv:2602.03359v1。有兴趣深入了解的读者可以通过该编号查询完整论文。研究团队提出了一种名为MeKi&#xff08;Memory-based Expert Knowledge Injection&…

作者头像 李华