训练营

CSP - J 训练营

# Day 1 ## 数据结构 含义:**拿来存储数据的结构** 常见形式: ### 1. 变量 只能存一个数。 ### 2. 数组 所有数组都开在 **全局变量**。 - **堆空间** 全局变量在堆空间。 空间为 $ 256 M $,可以存 $ 6.4 × 10^7 $ 个 `int`。 - * ......
训练营 CSP

代码随想录算法训练营第二十七天| 122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II

122.买卖股票的最佳时机II 注意: 1,第一个和最后一个 2,只有一个数的情况 3,2255,这种情况 思路: 1,买入:左:空/高/平 右:高 2,卖出:左:低 右:空/ 低/平 代码: 1 int maxProfit(vector<int>& prices) { 2 int result = ......
随想录 训练营 随想 算法 时机

CDMP国际数据治理认证训练营来了(7-8月)

大家好,我是独孤风,一位曾经的港口煤炭工人,目前在某国企任大数据负责人,公众号大数据流动主理人。在最近的两年的时间里,因为公司的需求,还有大数据的发展趋势所在,我开始学习数据治理的相关知识。 经过一段时间的努力,我也终于通过了**CDMP国际数据治理认证考试。** 离我研究生开学还有两个月的时间,应 ......
训练营 数据 国际 CDMP

代码随想录算法训练营第二十六天| 455.分发饼干 376. 摆动序列 53. 最大子序和

455.分发饼干 自己的 思路: 先排序,然后每个孩子找到他能满足的胃口饼干,找到了之后,孩子向前,饼干向前 代码: 1 int findContentChildren(vector<int>& g, vector<int>& s) 2 { 3 int result = 0; 4 sort(g.be ......
随想录 训练营 序列 饼干 随想

代码随想录算法训练营第二十五天| 332.重新安排行程(可跳过) 51. N皇后(可跳过) 37. 解数独(可跳过)

332.重新安排行程(可跳过) 难点: 1,解决死锁问题,我采用的是 selected,但是不会出现A->B->A这条信息 2,即使出现A-》B-》A,因为是有多条路径,所以无法找到合适的含有全部机场的路径 3,保证顺序 代码: 1 //机票信息 -》 一条遍历所有机场的路径 2 //步骤: 3 / ......
解数 随想录 训练营 随想 皇后

代码随想录算法训练营第二十四天| 491.递增子序列 46.全排列 47.全排列 II

491.递增子序列 此题的难点: 1,前提需要保留原有顺序 2,保证递增 3,保证去重 注意: 去重一定要有set的同时保证有顺序 代码: 1 void findSubsequences_trackBack(vector<int>& nums, int startIndex, vector<int> ......
随想录 训练营 序列 随想 算法

代码随想录算法训练营第二十三天| 93.复原IP地址 78.子集 90.子集II

93.复原IP地址 思路: 先考虑合法的情况,然后再依次往path里面加字符,如果它的长度>4但是还没有到最末尾,也就是说他是错的,也就return出去 代码: 1 //根据给定的一组字符串,分出来可能正确的IP 2 //思路:切割,[start, i],其中长度为0-3, 3 //判断是否满足条件 ......
子集 随想录 训练营 随想 算法

代码随想录算法训练营第51天 | ● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 ●总结 - 第9章 动态规划part12

第九章 动态规划part12 ● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 ● 总结 309.最佳买卖股票时机含冷冻期 本题加了一个冷冻期,状态就多了,有点难度,大家要把各个状态分清,思路才能清晰 视频讲解: https://programmercarl.com/03 ......
时机 随想录 股票 训练营 手续费

代码随想录算法训练营第55天 | ● 392.判断子序列 ● 115.不同的子序列 - 第9章 动态规划part15

第九章 动态规划part15 ● 392.判断子序列 ● 115.不同的子序列 详细布置 392.判断子序列 这道题目算是 编辑距离问题 的入门题目(毕竟这里只是涉及到减法),慢慢的,后面就要来解决真正的 编辑距离问题了 https://programmercarl.com/0392.%E5%88% ......
序列 随想录 训练营 随想 算法

代码随想录算法训练营第56天 | ● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇 - 第9章 动态规划part16

第九章 动态规划part16 ● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇 详细布置 583. 两个字符串的删除操作 本题和动态规划:115.不同的子序列 相比,其实就是两个字符串都可以删除了,情况虽说复杂一些,但整体思路是不变的。 72. 编辑距离 最终我们迎来了编 ......
随想录 训练营 字符串 随想 算法

代码随想录算法训练营第二十二天| 39. 组合总和 40.组合总和II 131.分割回文串

39. 组合总和 思路: 虽然可以是重复的,但是考虑到组合没有顺序这一说,所以还是要保留startIndex, sum不要再遍历一遍,再相加,应该跟随path,一起相加 代码: 1 void combinationSum_trackBack(vector<int>& candidates, int ......
总和 随想录 回文 训练营 随想

代码随想录算法训练营第二十一天| 216.组合总和III 17.电话号码的字母组合

216.组合总和III 思路: 很像上一个组合类型的题目,唯一不同的就是自己写一个sum 代码: 1 void convertBST_cur(TreeNode* root, vector<TreeNode*>& nodes) 2 { 3 if (!root) return ; 4 if (root- ......
随想录 训练营 总和 随想 算法

代码随想录算法训练营第二十一天| 77. 组合

回溯——组合 思路: 套了K次的循环,如何对K次循环呢,就需要一个startIndex,用它来控制从哪里开始 代码: 1 void combine_backTrack(int n, int k, int startIndex, vector<int>& path, vector<vector<int ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第二十天| 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

669. 修剪二叉搜索树 思路 递归法: 需要思考清楚,如果当前节点<low,那么就返回递归它的右节点,而不是自己取判断,找出来一个合适的节点,这样的话会越想越乱 代码: 1 TreeNode* trimBST_cursor(TreeNode* root, int low, int high) { ......
随想录 训练营 数组 随想 算法

代码随想录算法训练营第十九天| 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

235. 二叉搜索树的最近公共祖先 思路: 因为是二叉搜索树,所以公共祖先一定是位于这两个节点区间中的 问题: 为什么第一个是这两个中间的例子,就是公共祖先呢?因为是最先符合要求的, 代码: 1 TreeNode* lowestCommonAncestor(TreeNode* root, TreeN ......
随想录 训练营 节点 九天 祖先

代码随想录算法训练营第十八天| 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先

530.二叉搜索树的最小绝对差 思路: 根据二叉搜素树的特点,直接中序遍历,就是有序数组,然后两个节点进行比较,就可以 代码: 1 int getMinimumDifference(TreeNode* root) { 2 if(!root) return 0; 3 int result = INT_ ......
随想录 训练营 祖先 随想 算法

代码随想录算法训练营第十七天| 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树

654.最大二叉树 比较简单,直接上代码 1 TreeNode* constructMax_cursor(vector<int>& nums) 2 { 3 if (nums.size() == 0) return NULL; 4 //getMaxNum 5 int index = 0; 6 int ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第十六天| 找树左下角的值 路径总和 从中序与后序遍历序列构造二叉树

找树左下角的值 1,层序遍历,较为简单: 1 int findBottomLeftValue_simple(TreeNode* root) { 2 int result = 0; 3 if (!root) return result; 4 queue<TreeNode*> selected; 5 s ......
随想录 训练营 总和 序列 随想

代码随想录算法训练营第十五天| 110.平衡二叉树 (优先掌握递归) 257. 二叉树的所有路径 (优先掌握递归) 404.左叶子之和 (优先掌握递归)

110.平衡二叉树 (优先掌握递归) 难点: 要求每个节点的左右字数的高度相减<=1,因此,需要对每个节点都进行检查,难就难在怎么获得任意节点的高度 其中递归是最简单的: 1 int isB_cursor(TreeNode* node, bool &isBalance) 2 { 3 if (isBa ......
随想录 之和 训练营 随想 算法

代码随想录算法训练营第十四天| 104.二叉树的最大深度 (优先掌握递归) 111.二叉树的最小深度 (优先掌握递归) 222.完全二叉树的节点个数(优先掌握递归)

104.二叉树的最大深度 (优先掌握递归) 迭代法,上一篇已经讲过,只需要对每一层+1,这里重要些递归法 递归法注意:如果当前节点为NULL,返回0,不是NULL,那么就是 1+ max(right,left) 代码: 1 void maxD_cursor(TreeNode* node, int& ......
深度 随想录 训练营 节点 随想

代码随想录算法训练营第43天 | ● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零 - 第9章 动态规划part05

第九章 动态规划 part05 ● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零 详细布置 1049. 最后一块石头的重量 II 本题就和 昨天的 416. 分割等和子集 很像了,可以尝试先自己思考做一做。 视频讲解:https://www.bilibili.com ......
随想录 训练营 随想 算法 重量

代码随想录算法训练营第十三天| 层序遍历 226.翻转二叉树 (优先掌握递归) 101. 对称二叉树 (优先掌握递归)

层序遍历 注意: 1,使用队列的形式,依次入队,同时对队列进行计数 2,知道数目消失,才进行下一个队列 代码: 1 vector<vector<int>> levelOrder(TreeNode* root) 2 { 3 vector<vector<int>> result; 4 if (root ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第39天 | ● 62.不同路径 ● 63. 不同路径 II - 第9章 动态规划part02

第九章 动态规划part02 ● 62.不同路径 ● 63. 不同路径 II 今天开始逐渐有 dp的感觉了,题目不多,就两个 不同路径,可以好好研究一下 详细布置 62.不同路径 本题大家掌握动态规划的方法就可以。 数论方法 有点非主流,很难想到。 https://programmercarl.co ......
路径 随想录 训练营 随想 算法

代码随想录算法训练营第42天 | ● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集 - 第9章 动态规划part04

第九章 动态规划part04 ● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集 正式开始背包问题,背包问题还是挺难的,虽然大家可能看了很多背包问题模板代码,感觉挺简单,但基本理解的都不够深入。 如果是直接从来没听过背包问题,可以先看文字讲解慢慢 ......
背包 随想录 子集 问题 训练营

代码随想录算法训练营第37天 | ● 738.单调递增的数字 ● 968.监控二叉树 ● 总结 - 第8章 贪心算法part06

第八章 贪心算法 part06 ● 738.单调递增的数字 ● 968.监控二叉树 ● 总结 详细布置 738.单调递增的数字 https://programmercarl.com/0738.%E5%8D%95%E8%B0%83%E9%80%92%E5%A2%9E%E7%9A%84%E6%95%B0 ......
算法 随想录 训练营 随想 代码

代码随想录算法训练营第38天 | ● 理论基础 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯 - 第9章 动态规划part01

第九章 动态规划part01 ● 理论基础 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯 详细布置 今天正式开始动态规划! 理论基础 无论大家之前对动态规划学到什么程度,一定要先看 我讲的 动态规划理论基础。 如果没做过动态规划的题目,看我讲的理论基础,会有感觉 是 ......
楼梯 随想录 训练营 随想 算法

代码随想录算法训练营第35天 | ● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间 - 第8章 贪心算法part05

第八章 贪心算法 part05 ● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间 详细布置 今天的三道题目,都算是 重叠区间 问题,大家可以好好感受一下。 都属于那种看起来好复杂,但一看贪心解法,惊呼:这么巧妙! 还是属于那种,做过了也就会了,没做过就很难想出来。 不过大家把 ......
区间 算法 随想录 训练营 随想

代码随想录算法训练营第十二天| 递归遍历 (必须掌握)迭代遍历 统一迭代

递归遍历 重点: 1,TreeNode的自定义 2,val =0 == val = NULL; 代码: 1 void preRecursor(TreeNode* root, vector<int>& result) 2 { 3 if (root == NULL) 4 return; 5 result ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第十一天| 239. 滑动窗口最大值 347.前 K 个高频元素

239. 滑动窗口最大值 难点: 1,想好怎么快速找到区块内的最大数值,往常使用的是在遍历一次,但是是O(m*n) 思路: 1,使用单调队列,所有的数值都必须是从大到小, 2,用队列保持必要的顺序,而且对于大于K的循环,每次都要求pop push这两个操作 代码: 1 void pop(deque< ......
随想录 最大值 训练营 随想 算法

训练营 |【AIRIOT大学计划暑期训练营】第三期即将开营,报名从速!

培养新生力量,聚焦产业融合。为了促进物联网产业的纵深发展和创新,推进教育链、产业链与创新链的有机衔接,提高学生理论、实践和创新能力,为行业培养更多优秀人才,航天科技控股集团股份有限公司将于2023年7月3日以线上形式开展第三期【AIRIOT大学计划暑期训练营】,训练营面向全国高校相关专业学子全面开放 ......
训练营 AIRIOT 大学