解数 随想录 随想 皇后

续 dfs 八皇后问题(9/24)

第一种 类似于上一个题目得变形 #include<iostream> using namespace std; const int N = 20; int n; char p[N][N]; bool col[N], dg[N*2], udg[N*2];//注意范围的设置 void dfs(int u ......
皇后 问题 dfs 24

代码随想录算法训练营-动态规划-2|62. 不同路径

62. 不同路径 1 class Solution: 2 def uniquePaths(self, m: int, n: int) -> int: 3 # 创建一个二维列表用于存储唯一路径数 4 dp = [[0] * n for _ in range(m)] 5 6 # 设置第一行和第一列的基本 ......
随想录 训练营 随想 算法 路径

随想录Day4|24. 两两交换链表中的节点、19. 删除链表的倒数第N个节点、面试题 02.07. 链表相交、142. 环形链表Ⅱ

随想录Day4|24. 两两交换链表中的节点、19. 删除链表的倒数第N个节点、面试题 02.07. 链表相交、142. 环形链表Ⅱ 24. 两两交换链表中的节点 文章讲解 视频讲解 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能 ......
节点 随想录 环形 随想 Day4

代码随想录算法训练营-动态规划-1|509. 斐波那契数、70. 爬楼梯

509. 斐波那契数 1 class Solution: 2 def fib(self, n: int) -> int: 3 if n <= 2: 4 return n 5 6 prev1, prev2 = 0, 1 7 for _ in range(2, n+1): 8 sum_value = p ......
随想录 训练营 随想 算法 楼梯

[代码随想录]Day52-单调栈part03

题目:84. 柱状图中最大的矩形 思路: 实现要确定一个核心问题:包含完整一个柱子的最大矩形要找到这根柱子左侧最后一个高于他的柱子以及右侧最后一个高于他的柱子的位置(等同于左侧第一个小于他,右侧第一个小于他,因为+1 -1就是) 只要get到一个点,比如:30 50 70 80 60 70 40 这 ......
随想录 随想 代码 part Day

代码随想录算法训练营day17 | ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和

110.平衡二叉树 class Solution { public: int getHeight(TreeNode* node){ if(node == NULL) return 0; int leftHeight = getHeight(node->left); if(leftHeight == ......
随想录 之和 训练营 随想 算法

随想录Day3|203. 移除链表元素、707. 设计链表、206. 反转链表

随想录Day3|203. 移除链表元素、707. 设计链表、206. 反转链表 之后的文章就不放题目链接了,因为真的很推荐Vscode的LeetCode插件,搜一下题号就可以开始code了! 我没怎么用过C++所以也是才开始熟悉它的特性,因为是链表的开始,所以搬运一下卡尔的这一小段代码。 // 单链 ......
随想录 随想 元素 Day3 Day

[代码随想录]Day51-单调栈part02

题目:503. 下一个更大元素 II 思路: 总之就是走两次nums,可以拼接,也可以用下面的取余方式。 代码: func nextGreaterElements(nums []int) []int { lens := len(nums) res := make([]int, lens) for i ......
随想录 随想 代码 part Day

随想录Day2|977. 有序数组的平方、209. 长度最小的子数组、59. 螺旋矩阵Ⅱ

随想录Day2|977. 有序数组的平方、209. 长度最小的子数组、59. 螺旋矩阵Ⅱ 977. 有序数组的平方 LeetCode题目 文章讲解 视频讲解 给定一个按非递减顺序的整数数组nums,返回每个数字的平方组成的新数组,也要按照非递减顺序排序。 1 <= nums.length <= 10 ......
数组 随想录 矩阵 螺旋 随想

dfs(排列数字 n皇后问题) (9/21)

dfs排列数字 #include<iostream> using namespace std; const int N=10; int path[N]; bool str[N]; int n; void dfs(int u){ if(u==n){ for(int i=0;i<n;i++)printf ......
皇后 数字 问题 dfs 21

代码随想录算法训练营-贪心算法-5|56. 合并区间、738. 单调递增的数字、968. 监控二叉树

56. 合并区间 时间复杂度: O(nlogn) 空间复杂度: O(logn),排序需要的空间开销 1 class Solution: 2 def merge(self, intervals): 3 result = [] 4 if len(intervals) == 0: 5 return res ......
算法 随想录 训练营 区间 随想

[代码随想录]Day50-单调栈part01

题目: 思路: 要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了 代码: func dailyTemperatures(num []int) []int { res := make([]int, len(num)) stack := []int{} fo ......
随想录 随想 代码 part Day

代码随想录算法训练营day14| ● 二叉树理论基础 ● 递归遍历 ● 迭代遍历 ● 统一迭代

二叉树理论基础 二叉树的种类 满二叉树 | 完美二叉树:没有缺少的结点,叶子结点也全满 完全二叉树:只有最底层结点没满,但必须从左到右连续。(满二叉树是特殊的完全二叉树) 二叉搜索树:左小右大 平衡二叉搜索树: 左右子树的高度差 Δh <= 1 二叉树的存储方式: 链式存储:链表 **顺序存储: * ......
随想录 训练营 随想 算法 理论

代码随想录算法训练营day15 | ● 层序遍历 10 ● 226.翻转二叉树 ● 101.对称二叉树 2

层序遍历 102.二叉树的层序遍历 class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> result; queue<TreeNode*> que; if(root ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营day16 | ● 104.二叉树的最大深度 559.n叉树的最大深度 ● 111.二叉树的最小深度 ● 222.完全二叉树的节点个数

104.二叉树的最大深度 后序遍历法 class Solution { public: int getdepth(TreeNode* node){ if(node == NULL) return 0; int leftdepth = getdepth(node->left); int rightde ......
深度 随想录 训练营 节点 随想

[代码随想录]Day49-动态规划part17

题目:647. 回文子串 思路: 整体上是两种,就是s[i]与s[j]相等,s[i]与s[j]不相等这两种。 当s[i]与s[j]不相等,那没啥好说的了,dp[i][j]一定是false。 当s[i]与s[j]相等时,这就复杂一些了,有如下三种情况 情况一:下标i 与 j相同,同一个字符例如a,当然 ......
随想录 随想 代码 动态 part

[代码随想录]Day48-动态规划part16

题目:583. 两个字符串的删除操作 思路: 还是最长公共子序列,假设最长公共子序列长度是l;那么需要删除的次数是len(s1) - l + len(s2) - l 代码: func minDistance(word1 string, word2 string) int { lens1 := len ......
随想录 随想 代码 动态 part

N-皇后问题

N-皇后问题是一个经典的计算机科学和数学问题,其目标是在一个N×N的棋盘上放置N个皇后,使得它们彼此之间互不攻击,即没有两个皇后在同一行、同一列或同一斜线上。 这个问题最早由卡尔·弗里德里希·高斯于1850年提出,它在计算机科学领域中被广泛研究,被用作算法和人工智能的基础问题。 问题描述 给定一个N ......
皇后 问题

代码随想录算法训练营第十一天

代码随想录算法训练营第十一天 | LeetCode 239(滑动窗口最大值) LeetCode 347(前K个高频元素) 239: 滑动窗口最大值 LeetCode 239(滑动窗口最大值) import java.util.Deque; import java.util.LinkedList; c ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营-贪心算法-4|406. 根据身高重建队列、452. 用最少数量的箭引爆气球

406. 根据身高重建队列 1. 一定要想如何确定一个维度,然后再按照另一个维度重新排列。 2. 先确定身高的维度,降序排列。 3. 按照身高排序之后,优先按身高高的people的k来插入,后序插入节点也不会影响前面已经插入的节点,最终按照k的规则完成了队列。 4. 局部最优:优先按身高高的peop ......
算法 随想录 队列 训练营 气球

代码随想录算法训练营day13| ● 239. 滑动窗口最大值 ● 347.前 K 个高频元素 ● 总结

239.滑动窗口最大值 mydemo--(自己思路)--failed 超出时间限制 class Solution { public: vector<int> maxSlidingWindow(vector<int>& nums, int k) { vector<int> result; stack< ......
随想录 最大值 训练营 随想 算法

代码随想录算法训练营day11| ● 20. 有效的括号 ● 1047. 删除字符串中的所有相邻重复项 ● 150. 逆波兰表达式求值

20.有效的括号 卡哥demo class Solution { public: bool isValid(string s) { if(s.size() %2 != 0) return false; stack<char> st; for(int i = 0; i < s.size(); i++) ......

[代码随想录]Day47-动态规划part15

题目:392. 判断子序列 思路: 最长子序列的长度是不是len(s) 代码: func isSubsequence(s string, t string) bool { dp := make([][]int,len(s)+1) for i:=0;i<len(dp);i++{ dp[i] = mak ......
随想录 随想 代码 动态 part

代码随想录算法训练营-回溯算法-3|134. 加油站、135. 分发糖果

134. 加油站 局部最优:当前累加rest[i]的和curSum一旦小于0,起始位置至少要是i+1,因为从i之前开始一定不行。全局最优:找到可以跑一圈的起始位置。 时间复杂度:O(n) 空间复杂度:O(1) 1 class Solution: 2 def canCompleteCircuit(se ......
算法 随想录 训练营 随想 糖果

八皇后(bfs)旧题新做

题意 题目链接:https://www.luogu.com.cn/problem/P1219?contestId=130784 题意就是给一个 N x N 的矩阵,然后放 N 个皇后,问可以怎么放,有多少种放法。 思路 dfs。 需要三个数组,col[i] 用来存第 i 列是否放置了皇后,dg[i] ......
皇后 bfs

[8]-代码随想录算法训练营-day9-字符串-part2

代码随想录算法训练营第九天|字符串-part2 1.Leecode 28. 找出字符串中第一个匹配项的下标 题目 https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/ 思路 暴力for循环 刷 ......
随想录 训练营 字符串 随想 算法

[8]-代码随想录算法训练营-day8-KMP算法

代码随想录训练营-KMP算法学习 1.基础概念 前缀 包含首字母,不包含尾字母的所有子串 后缀 包含尾字母,不包含首字母的所有子串 最长相等前后缀 罗列模式串中所有字符串的前后缀 确定最长相等的前后缀 如何找前后缀: 模式串为aabaaf 则其前缀有:a、aa、aab 、aaba、 aabaa 则其 ......
算法 随想录 训练营 随想 day8-KMP

[7]-代码随想录算法训练营-day8-字符串-part1

代码随想录算法训练营第八天|数组字符串-part1 1.Leecode 344. 反转字符串 题目 https://leetcode.cn/problems/reverse-string/ 思路 刷随想录后想法 双指针,用swap 实现困难 无 实现代码 class Solution { publi ......
随想录 训练营 字符串 随想 算法

代码随想录算法训练营-回溯算法-2|55. 跳跃游戏、45. 跳跃游戏 II、1005. K 次取反后最大化的数组和

55. 跳跃游戏 1. 跳跃的覆盖范围。这个问题就转化为跳跃覆盖范围究竟可不可以覆盖到终点! 2. 贪心算法局部最优解:每次取最大跳跃步数(取最大覆盖范围),整体最优解:最后得到整体最大覆盖范围,看是否能到终点。 时间复杂度: O(n) 空间复杂度: O(1) 1 class Solution: 2 ......
算法 随想录 训练营 数组 随想

代码随想录算法训练营第十天

代码随想录算法训练营第十天 | LeetCode 20(有效的括号) LeetCode 1047(删除字符串中的所有相邻重复项) LeetCode 150(逆波兰表达式求值) 20:有效的括号 LeetCode 20(有效的括号) 方法一 import java.util.Stack; class ......
随想录 训练营 随想 算法 代码