训练营
代码训练营第十一天(Python)| 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值
20. 有效的括号 思路:分析出三种情况,画图模拟。写代码容易写错。 class Solution: def isValid(self, s: str) -> bool: a_stack = list() for i in s: if i == '(': a_stack.append(')') el ......
代码随想训练营第十天(Python)| 232.用栈实现队列 、 225. 用队列实现栈
232.用栈实现队列 class MyQueue: def __init__(self): self.stack_in = list() self.stack_out = list() def push(self, x: int) -> None: self.stack_in.append(x) d ......
代码训练营第八天(Python)| 344.反转字符串、541. 反转字符串II、05.替换空格、151.翻转字符串里的单词、58-II.左旋转字符串
344.反转字符串 双指针法 时间复杂度为: O(n), 空间复杂度为: O(1) class Solution: def reverseString(self, s: List[str]) -> None: """ Do not return anything, modify s in-place ......
代码随想训练营第七天(Python)| 454.四数相加II 、383. 赎金信 、15.三数之和 、18. 四数之和
454.四数相加II 关键点:减少复杂度判断 a+b 是否 等于 -(d+e).求和类的题目,利用好相反数。 class Solution: def fourSumCount(self, nums1: List[int], nums2: List[int], nums3: List[int], nu ......
代码随想训练营第四天(Python)| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、02.07. 链表相交、142.环形链表II
两两交换链表中的节点 关键点:涉及到头节点变动的都使用虚拟节点。画图找出交换节点指向的顺序和退出循环的条件。 1、迭代法 class Solution: def swapPairs(self, head: Optional[ListNode]) -> Optional[ListNode]: dumm ......
代码随想训练营第五天(Python)| 242.有效的字母异位词、349. 两个数组的交集、第202题. 快乐数、 1. 两数之和
242.有效的字母异位词 1、数组法 这个思路贼 6 ,在这个题的效率也高 class Solution: def isAnagram(self, s: str, t: str) -> bool: # 全部转为 asii 码 如果是互为异为词,则最后的 -+ 后的结果为 0 record = [0] ......
代码随想训练营第三天(Python) | 203.移除链表元素、707.设计链表、206.反转链表
一、203.移除链表元素 关键点:如何删除节点,需要知道删除节点前的节点。 1、无虚拟头节点的方法 class Solution: def removeElements(self, head: Optional[ListNode], val: int) -> Optional[ListNode]: ......
代码随想录算法训练营-动态规划-3-(0-1背包问题)|416. 分割等和子集、1049. 最后一块石头的重量 II
416. 分割等和子集 01背包的递推公式为:dp[j] = max(dp[j], dp[j - weight[i]] + value[i]); 如果dp[j] == j 说明,集合中的子集总和正好可以凑成总和j,理解这一点很重要。 1 class Solution: 2 def canPartit ......
《云原生 AI 工程化实践训练营-先锋系列》开营啦!
本次训练营除了为您准备有视频课程、线上动手实验场景、入群 1V1 专人辅导学习手把手实验教学外,还有阿里云官方证书、定制保温杯、超萌回弹笔记本、云小宝等福利等您拿~快来点击下方阅读原文,即刻报名吧! ......
代码随想录训练营的第二天(Python)| 977.有序数组的平方、209.长度最小的子数组
977.有序数组的平方 暴力求解(O(n+logn)) class Solution: def sortedSquares(self, nums: List[int]) -> List[int]: return sorted(i**2 for i in nums) 双指针(O(n)) 由于列表是单调 ......
代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
704. 二分查找 链接:https://leetcode.cn/problems/binary-search/description/ 思路:关键是定义清楚区间边界,想清楚middle在计算中是否可能取到左边界or右边界。若采用闭区间,则middle可能等于左/右 边界值。 27. 移除元素 链接 ......
代码随想录算法训练营第一天(python) | 704. 二分查找、27. 移除元素。
Leetcode 704 二分查找 题目链接:704 二分查找 关键点思路: 1、是否要进入到 while 部分的代码是 left <= right 还是 left < right, 看 [left, right] 是否是合法区间. 例如 [1, 1] 是合法区间,取<=; [1, 1) 非合法区间 ......
国家智能网联汽车创新中心自动驾驶操作系统训练营第二期开始啦,欢迎报名参加!
自动驾驶OS开发训练营是国家智能网联汽车创新中心发起的技术培训项目,旨在为在校大学生和智能汽车领域工作人员提供专业的自动驾驶操作系统开发技能和知识。 培训课程涵盖三个阶段,初阶实现驱动开发,中阶完成OS移植适配,终阶面向自动驾驶场景应用。 初阶训练营历时约4周,旨在让学员初步掌理解自动驾驶知识,掌握 ......
腾讯云 Cloud Studio 实战训练营结营&活动获奖公示
点击链接了解详情 “腾讯云 Cloud Studio 实战训练营” 是由腾讯云联合 CSDN 推出的系列开发者技术实践活动,通过技术分享直播、动手实验项目、优秀代码评选、有奖征文活动等,让广大开发者沉浸式体验腾讯云开发者工具 Cloud Studio 的同时,实现技术实战能力提升。 本次实战训练营活 ......
代码随想录算法训练营-动态规划-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 # 设置第一行和第一列的基本 ......
代码随想录算法训练营-动态规划-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 ......
代码随想录算法训练营day17 | ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和
110.平衡二叉树 class Solution { public: int getHeight(TreeNode* node){ if(node == NULL) return 0; int leftHeight = getHeight(node->left); if(leftHeight == ......
代码随想录算法训练营-贪心算法-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 ......
代码随想录算法训练营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 ......
代码随想录算法训练营第十一天
代码随想录算法训练营第十一天 | 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++) ......
代码随想录算法训练营-回溯算法-3|134. 加油站、135. 分发糖果
134. 加油站 局部最优:当前累加rest[i]的和curSum一旦小于0,起始位置至少要是i+1,因为从i之前开始一定不行。全局最优:找到可以跑一圈的起始位置。 时间复杂度:O(n) 空间复杂度:O(1) 1 class Solution: 2 def canCompleteCircuit(se ......
[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 则其 ......
[7]-代码随想录算法训练营-day8-字符串-part1
代码随想录算法训练营第八天|数组字符串-part1 1.Leecode 344. 反转字符串 题目 https://leetcode.cn/problems/reverse-string/ 思路 刷随想录后想法 双指针,用swap 实现困难 无 实现代码 class Solution { publi ......