摘要: 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案数。 每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该 阅读全文
posted @ 2026-03-04 17:27 Lambda_L 阅读(48) 评论(0) 推荐(0)
摘要: 1.普通二叉树的LCA如何求(朴素做法) 两种情况 第一种,p和q是分开的。 第二种,其中一个是lca。 从根节点开始遍历,如果碰到了p或q那么这个节点就是lca,如果一个节点左右子树均有p或q,那么这个节点是lca。 class Solution { public: TreeNode* lowes 阅读全文
posted @ 2026-03-03 18:45 Lambda_L 阅读(14) 评论(0) 推荐(0)
摘要: 完全二叉树就是在满二叉树的基础上从右往左去若干节点。 判断是否为完全二叉树有两个判断条件, 1.如果左节点为空,而右节点不为空,那么不是完全二叉树。 2.如果层序遍历已经发现了左节点不为空而右节点为空的节点,那么接下来遍历的必须全是叶子节点,否则不是完全二叉树。 满足以上条件就是完全二叉树。(默认空 阅读全文
posted @ 2026-03-03 13:45 Lambda_L 阅读(20) 评论(0) 推荐(0)
摘要: 1.求一个数是不是2的幂 方法:对于大于0的数,求他的lowbit,看看是不是和这个数相等就行了。 class Solution { public: bool isPowerOfTwo(int n) { return n > 0 && n == (n & (-n)); } }; 补:或者看n&(n- 阅读全文
posted @ 2026-03-02 18:47 Lambda_L 阅读(20) 评论(0) 推荐(0)
摘要: 如果有一个数组,这个数组中只有一个数出现的次数不够m次,其他数出现次数都等于m次,那么求这个数 思路:创建一个31位的mask数组,将每一位上出现的次数加起来,哪一位出现次数不为m的倍数,那么哪一位就是所求数的一部分 // 已知数组中只有1种数出现次数少于m次,其他数都出现了m次 // 返回出现次数 阅读全文
posted @ 2026-03-02 16:07 Lambda_L 阅读(14) 评论(0) 推荐(0)
摘要: 注意到如果数组中只有一个出现奇数次的数,那么异或和就是答案,现在异或和xor1=a^b, 求xor1的lowbit,再遍历一遍,易知a和b必然有一个&lowbit=0,那么把这样的数找出来,就可以得到其中一个数xor2,xor2^xor1就是另一个数了 class Solution { public 阅读全文
posted @ 2026-03-02 15:56 Lambda_L 阅读(8) 评论(0) 推荐(0)
摘要: 先看归并排序,归并排序就是先排左,再排右,然后把这两部分merge在一起,时间复杂度是O(nlogn)的。 额外空间复杂度O(n); 1)左部分排好序、右部分排好序、利用merge过程让左右整体有序 2)merge过程:谁小拷贝谁,直到左右两部分所有的数字耗尽,拷贝回原数组 void merge(i 阅读全文
posted @ 2026-03-02 13:35 Lambda_L 阅读(8) 评论(0) 推荐(0)
摘要: 三种时间复杂度为O(n2)的排序 简单来说,冒泡排序就是0i范围上,相邻位置较大的数滚下去,最大值最终来到i位置,然后0i-1范围上继续 选择排序就是in-1范围上,找到最小值并放在i位置,然后i+1n-1范围上继续 插入排序比其他两个优秀一些, 就是0~i范围上已经有序,新来的数从右到左滑到不再小 阅读全文
posted @ 2026-03-01 18:37 Lambda_L 阅读(16) 评论(0) 推荐(0)
摘要: 二叉树的遍历一般两种,深搜,广搜。 广搜非常简单,只需要一个队列就行了,只要左右孩子不为空,那么就入队,代码就不放了(); 主要写一下深搜,也就是先序遍历,中序遍历,后序遍历。 三者的区别在于什么时候输出中间元素,也就是头。 递归版本 (代码展示很抽象,但理解意思即可) void preOrder( 阅读全文
posted @ 2026-03-01 17:14 Lambda_L 阅读(31) 评论(0) 推荐(0)
摘要: A Eating Game 其实就是找最大值一共有几个 void solve() { int mx = 0; cin >> n; int cnt = 0; for (int i = 1; i <= n; i++) { int x; cin >> x; if (x > mx) { mx = x; cn 阅读全文
posted @ 2026-02-28 15:42 Lambda_L 阅读(29) 评论(0) 推荐(0)