leetcode51.N皇后(困难)-回溯法

 思路 都知道n皇后问题是回溯算法解决的经典问题,但是用回溯解决多了组合、切割、子集、排列问题之后,遇到这种二维矩阵还会有点不知所措。 首先来看一下皇后们的约束条件: 不能同行不能同列不能同斜线 确定完约束条件,来看看究竟要怎么去搜索皇后们的位置,其实搜索皇后的位置,可以抽象为一棵树。 下面我用一个 3 * 3 的棋盘,将搜索过程抽象为一棵树,如图:  从图中,可以看出,二维矩阵中矩阵的高就是这棵树的高...

【优选算法】——Leetcode——LCR 179. 查找总价格为目标值的两个商品

1.题目 2. 解法⼀(暴⼒解法,会超时): 1.算法思路: 2.图解  3. 代码实现  3. 解法⼆(双指针-对撞指针): 1.算法思路:  2.图解 3.代码实现               1.C语言    2.C++                       1.题目 LCR 179. 查找总价格为目标值的两个商品 购物车内的商品价格按照升序记录于数组 price。请在购物车中找到两个商品的...

【leetcode面试经典150题】75. 二叉树展开为链表(C++)

【题目描述】 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 【示例一】 输入:root = [1,2,5,3,4,null,6]输出:[1,null,2,null,3,null,4,null,5,null,6] 【示...

【漏洞复现】WebLogic XMLDecoder反序列化(CVE-2017-10271)

1、漏洞描述 CVE-2017-10271漏洞产生的原因大致是Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的xml数据甚至能通过反弹shell拿到权限。 2、涉及版本 10.3.6.0.012.1.3.0.012.2.1.1.012.2....

【leetcode面试经典150题】74. 填充每个节点的下一个右侧节点指针 II(C++)

【题目描述】 给定一个二叉树: struct Node { int val; Node *left; Node *right; Node *next;} 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL 。 初始状态下,所有 next 指针都被设置为 NULL 。 【示例一】 输入:root = [1,2,3,4,5,null...

LeetCode //C - 38. Count and Say Medium Topics Companies

nth term of the count-and-say sequence.   Example 1: Example 2: Constraints: 1 <= n <= 30 From: LeetCode Link: 38. Count and Say Solution: Ideas: Base Case: If n is 1, the function returns the string “1”,...

【Leetcode】vector刷题

🔥个人主页:Quitecoder 🔥专栏:Leetcode刷题 目录 1.只出现一次的数字2.杨辉三角3.删除有序数组中的重复项4.只出现一次的数字II5.只出现一次的数字III6.电话号码的字母组合 1.只出现一次的数字 这道题很简单,我们只需要遍历一遍数组,利用异或操作的性质(一个数与自身异或结果为0,任何数与0异或还是其本身) class Solution {public: int single...

【leetcode面试经典150题】73. 从中序与后序遍历序列构造二叉树(C++)

【题目描述】 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 【示例一】 输入:inorder = [9,3,15,20,7], postorder = [9,15,7,20,3]输出:[3,9,20,null,null,15,7] 【示例二】 输入:inorder = [...

【leetcode面试经典150题】64. 删除排序链表中的重复元素 II(C++)

【题目描述】 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 【示例一】 输入:head = [1,2,3,3,4,4,5]输出:[1,2,5] 【示例二】 输入:head = [1,1,1,2,3]输出:[2,3] 【提示及数据范围】 链表中节点数目在范围 [0, 300] 内-100 <= Node.val <= 100题目数...

【代码随想录刷题记录】LeetCode367有效的完全平方数

题目地址 1. 思路 这个题就用二分查找的思想,比LeetCode69x的平方根要简单一些,那个还要处理开平方不是整数的情况,这个直接就按左闭右闭,middle的平方是num就返回true,否则继续迭代二分直到找到middle的平方是num的情况返回true,或者找不到跳出循环返回false. 2. 代码 class Solution {public: //左闭右闭 bool isPerfectSqu...
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.014666(s)
2024-05-16 12:09:51 1715832591