训练营刷题第10天_python

补作业。。。

leetcode 四题
232.用栈实现队列
225. 用队列实现栈
20. 有效的括号
1047. 删除字符串中的所有相邻重复项

232
我看到了这个
del self.listq[0]
!!! pop原来是这样?直接del就可以啦
我还辛苦巴拉的 列表数值前移,再删掉最后一个
但是 实际上这道题想干的是用两个list 实现 emm,还是了解下这种做法吧,应该有他的道理
在这里插入图片描述
225
一个队列,用不来两个队列。。。
在这里插入图片描述

20
之前写的了,这个方法还是挺巧妙的,例如字典存储 括号的左右对应,用 栈来存储左括号。对字符串,如果遇到左括号,存栈,遇到右括号,从栈未pop出一个值,如果对应该右括号,那就没问题,继续读字符串,否则,False。
在这里插入图片描述
1047
学到了 对栈的理解更深了
但时间/空间复杂度下不去,也学习了人家的解,但emm,部分题还是很有必要这么做的
在这里插入图片描述


### 学习计划 为了在十内高效学习算法,建议采用系统化的学习路径,结合理论与实践,确保知识的快速吸收和应用能力的提升。以下是一个紧凑且高效的学习计划: #### 第一阶段:基础算法与数据结构(第1-3) 重点掌握常见数据结构(如数组、链表、栈、队列、哈希表)和基础算法(如排序、查找、递归、分治)。理解时间复杂度与空间复杂度的概念,并能够分析常见算法的复杂度。 - **推荐资源**: - 书籍:《算法导论》(Introduction to Algorithms)前几章 - 视频课程:MIT OpenCourseWare上的《Introduction to Algorithms》 - 在线平台:LeetCode、Codeforces、牛客网的基础库练习 #### 第二阶段:进阶算法与常见型(第4-6学习动态规划、贪心算法、图论基础(如DFS、BFS、最短路径、最小生成树)以及字符串处理算法。掌握这些算法的典型应用场景和解思路。 - **推荐资源**: - 书籍:《算法竞赛入门经典》(刘汝佳) - 平台:LeetCode上的“Top 100 Liked Questions”和“Top Interview Questions” #### 第三阶段:实战训练与项目应用(第7-10) 通过实际项目或竞赛目巩固所学知识。可以尝试解决一些现实中的算法问,例如数据建模、调度优化等[^2]。 - **推荐实践方法**: - 参加LeetCode周赛或Codeforces比赛 - 完成Kaggle上的入门项目(如Titanic生存预测) - 实现一个简单的推荐系统或路径规划算法 ### 资源推荐 - **编程平台**: - LeetCode:提供大量高频面试,适合训练 - Codeforces:全球范围的编程竞赛平台,适合提升算法思维 - 牛客网:国内常见的算法库,适合准备校招笔试 - **学习项目**: - 实现一个简单的动态规划问,如背包问或最长公共子序列 - 编写一个图的遍历程序,使用DFS/BFS解决迷宫问 - 构建一个基于协同过滤的推荐系统基础版本 - **学习方法**: - 每设定明确的学习目标,例如完成5道LeetCode或阅读一章算法书籍 - 记录学习笔记,总结每种算法的适用条件和实现技巧 - 与他人组队讨论,参与线上学习小组或算法训练营 ### 示例代码 以下是一个使用动态规划解决“最长公共子序列”问Python实现: ```python def longest_common_subsequence(text1: str, text2: str) -> int: m, n = len(text1), len(text2) dp = [[0] * (n + 1) for _ in range(m + 1)] for i in range(1, m + 1): for j in range(1, n + 1): if text1[i - 1] == text2[j - 1]: dp[i][j] = dp[i - 1][j - 1] + 1 else: dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) return dp[m][n] ``` 该算法使用二维动态规划数组`dp`来记录子问的最优解,并最终构建出全局最优解[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值