python基础刷题_数据结构与算法LeetCode刷题(Python)

参考资料:

一、链表

1.  链表的必备知识要点(包括基础知识、刷题中使用的STL等知识)

2.  链表逆序(LeetCode 92 ,206. Reverse Linked List 1,2)

3.  求两个链表的交点(LeetCode 160. Intersection of Two Linked Lists)

4.  链表的节点交换(LeetCode 24. Swap Nodes in Pairs)

5.  链表求环(LeetCode 141 ,142. Linked List Cycle 1,2)

6.  链表重新构造(LeetCode 86. Partition List)

7.  复杂的链表复制(LeetCode 138. Copy List with Random Pointer)

8.  排序链表合并(2个与多个) (LeetCode 21,23 Merge Two(k) Sorted ListsLeetCode)

二、栈、队列、堆

1.  栈、队列知识要点与实现(数组、链表)

2.  使用队列实现栈(LeetCode 232. Implement Queue using Stacks)

3.  使用栈实现队列(LeetCode 225. Implement Stack using Queues)

4.  包含min函数的栈(LeetCode 155. Min Stack)

5.  简单的计算器(栈的应用)( LeetCode 224. Basic Calculator)

6.  堆(优先级队列)知识要点与实现

7.  数组中第K大的数(堆的应用) (LeetCode 215. Kth Largest Element in an Array)

8.  寻找中位数(堆的应用)( LeetCode 295 Find Median from Data Stream)

三、贪心

1.  贪心算法知识要点,刷题必备的STL知识

2.  贪心题目1(LeetCode 455. Assign Cookies)

3.  贪心题目2(LeetCode 402. Remove K Digits)

4.  贪心题目3(LeetCode 134. Gas Station)

5.  贪心题目4(LeetCode 135. Candy)

6.  贪心题目5(LeetCode 502. IPO)

7.  贪心题目6(LeetCode 321. Create Maximum Number)

8.  贪心题目7(codeforces 582A GCD Table)

四、递归、分制、回溯

1.  递归的知识要点,回溯算法

2.  生成组合数(LeetCode 39. Combination Sum, LeetCode 40. Combination Sum II)

3.  生成排列数(LeetCode 46. Permutations, LeetCode 47. Permutations II)

4.  N皇后问题(LeetCode 51. N-Queens, LeetCode 52. N-Queens II)

5.  分制算法知识要点

6.  快速排序算法与经典实现

7.  不同的加括号方法(LeetCode 241. Different Ways to Add Parentheses)

8.  两个数组的中位数(LeetCode 4. Median of Two Sorted Arrays)

五、树与图

1.  树与图的数据结构与基本算法

2.  树遍历的回调函数实现,并使用自动机概念实现非递归树前、中、后遍历

3.  树与链表的转换(LeetCode 114. Flatten Binary Tree to Linked List)

4.  最近的公共祖先(LeetCode 236. Lowest Common Ancestor of a Binary Tree)

5.  树的层次遍历应用(LeetCode 199. Binary Tree Right Side View)

6.  树的改造(LeetCode 117. Populating Next Right Pointers in Each Node 1,2)

7.  图的复制(LeetCode 133. Clone Graph)

8.  图的搜索与应用(LeetCode 207.Course Schedule)

六、二分查找、二叉排序树、位运算的应用

1.  二分查找、二叉排序树的知识要点

2.  数组的二分查找(LeetCode 33 ,81 Search in Rotated Sorted Array 1,2)

3.  区间二分查找(LeetCode 34. Search for a Range)

4.  排序链表转换为二叉排序树(LeetCode 109. Convert Sorted List to B- Search Tree)

5.  二叉排序树的遍历与改造(LeetCode 538 Convert BST to Greater Tree)

6.  二叉排序树中的第K大的数(LeetCode 230. Kth Smallest Element in a BST)

7.  位运算的知识要点

8.  使用位运算表示集合(LeetCode 78. Subsets)

9.  位运算应用题目(LeetCode 136,137,260. Single Number1,2,3)

七、哈希表与字符串

1.  哈希表与字符串知识要点

2.  哈希题目 (LeetCode 290. Word Pattern)

3.  哈希与字符串综合 (LeetCode 3.Longest Substring Without Repeating Characters)

4.  哈希与字符串综合 (LeetCode 76. Minimum Window Substring)

5.  哈希与字符串综合 (LeetCode 30. Substring with Concatenation of All Words)

6.  字符串题目 (LeetCode 459. Repeated Substring Pattern)

7.  字符串题目 (LeetCode 468. Validate IP Address)

八、搜索

1.  深度优先搜索与广度优先搜索算法

2.  深搜题目 (LeetCode 200. Number of Islands)

3.  深搜题目 (LeetCode 473. Matchsticks to Square)

4.  深搜题目 (LeetCode 491. Increasing Subsequences)

5.  广搜题目 (LeetCode 126,127 Word Ladder 1,2)

6.  广搜题目 (LeetCode 417. Pacific Atlantic Water Flow)

7.  广搜题目 (LeetCode 407. Trapping Rain Water II)

九、动态规划

1.  动态规划知识要点

2.  动态规划题目1(LeetCode 120. Triangle)

3.  动态规划题目2(LeetCode 53. Maximum Subarray)

4.  动态规划题目3(LeetCode 198,213. House Robber 1,2)

5.  动态规划题目4(LeetCode 322. Coin Change)

6.  动态规划题目5(LeetCode 72. Edit Distance)

7.  动态规划题目6(LeetCode 174. Dungeon Game)

8.  动态规划题目7(codeforces 711C Coloring Trees)

十、复杂数据结构

1.  Trie树的构造与基本算法

2.  Trie树的构造 (LeetCode 208. Implement Trie (Prefix Tree))

3.  Trie树的应用 (LeetCode 212. Word Search II)

4.  并查集的基本算法

5.  并查集的应用 (LeetCode 547. Friend Circles)

6.  线段树与树状数组

7.  线段树与树状数组的应用(LeetCode 307. Range Sum Query – Mutable)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python LeetCode刷题指南是一个帮助想要提高他们算法和编程能力的人通过LeetCode平台进行刷题的指南。以下是一些建议和步骤: 1. 建立良好的编程基础:在开始之前,确保你对Python编程语言有一定的了解,并掌握基本的数据结构和算法知识,比如链表、栈、队列、二叉树等。 2. 熟悉LeetCode题库:花一些时间浏览LeetCode题库,了解不同题目的分类和难度等级。这样你就能更好地规划你的刷题计划。 3. 制定计划和目标:根据你自己的时间和目标,设置一个刷题计划。计划可以包括每天刷多少题目、每周完成的目标等。通过制定计划,你可以更有条理地刷题,并逐渐提高自己的能力。 4. 解题思路和算法:在开始解题之前,先仔细阅读题目,理解题意和要求。然后,考虑适合该问题的算法和数据结构。在LeetCode网站上,每个问题都有详细的解题思路和讨论,可以从中获得灵感。 5. 编码和调试:根据你选择的算法和数据结构,使用Python编写解决方案。在编码过程中,注重代码的可读性和可维护性。完成后,运行代码进行测试并调试。 6. 提交和优化:在完成一个问题的解答后,提交你的解答并查看运行结果。如果通过所有的测试用例,那么恭喜你!如果没有通过,仔细检查代码并修改错误。同时,尝试优化你的解法,使其更高效。 7. 学习和总结:刷题是一个学习和成长的过程。通过刷题,你会遇到不同的问题和挑战,学会更多的算法和技巧。每个完成的题目都对你的编程能力有所增加,不论是通过自己的思考还是学习他人的解法。完成一个问题后,不要忘记总结并思考这个问题的解题思路和优化方法。 总之,Python LeetCode刷题指南提醒我们刷题不仅仅是为了解决具体问题,更是为了提升我们的算法和编程能力。通过系统化的刷题计划和总结,我们可以逐渐掌握更多的算法和数据结构,并在实际项目中得以应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值