背景
如果说 Java 是自动档轿车,C 就是手动档吉普。数据结构与算法呢?是变速箱的工作原理。你完全可以不知道变速箱怎样工作,就把自动档的车子从 A 开到 B,而且未必就比懂得的人慢。写程序这件事,和开车一样,经验可以起到很大作用,但如果你不知道底层是怎么工作的,就永远只能开车,既不会修车,也不能造车。如果你对这两件事都不感兴趣也就罢了,数据结构与算法懂得用就好。但若你此生在编程领域还有点更高的追求,数据结构与算法是绕不开的课题。
本期基础算法(Leetcode)刻意练习采用分类别练习的模式,即选择了五个知识点(数组、链表、字符串、树、贪心算法),每个知识点选择了 三个简单、两个中等、一个困难 等级的题目,共计三十道题,利用三十天的时间完成这组刻意练习。
为了让大家了解如何在CSDN打卡,以及如何在Leetcode上刷题,我在前面写了两篇图文可以参考一下。
知识点1:数组
Task01. 两数之和
- 难度:简单
- 网址:https://leetcode-cn.com/problems/two-sum/
Task02. 删除排序数组中的重复项
- 难度:简单
- 网址:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
Task03. 移除元素
- 难度:简单
- 网址:https://leetcode-cn.com/problems/remove-element/
Task04. 三数之和
- 难度:中等
- 网址:https://leetcode-cn.com/problems/3sum/
Task05. 最接近的三数之和
- 难度:中等
- 网址:https://leetcode-cn.com/problems/3sum-closest/
Task06. 买卖股票的最佳时机 III
- 难度:困难
- 网址:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iii/
知识点2:链表
Task01. 合并两个有序链表
- 难度:简单
- 网址:https://leetcode-cn.com/problems/merge-two-sorted-lists/
Task02. 删除排序链表中的重复元素
- 难度:简单
- 网址:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/
Task03. 环形链表
- 难度:简单
- 网址:https://leetcode-cn.com/problems/linked-list-cycle/
Task04. 两数相加
- 难度:中等
- 网址:https://leetcode-cn.com/problems/add-two-numbers/
Task05. 删除链表的倒数第N个节点
- 难度:中等
- 网址:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/
Task06. 合并K个排序链表
- 难度:困难
- 网址:https://leetcode-cn.com/problems/merge-k-sorted-lists/
知识点3:字符串
Task01. 罗马数字转整数
- 难度:简单
- 网址:https://leetcode-cn.com/problems/roman-to-integer/
Task02. 最长公共前缀
- 难度:简单
- 网址:https://leetcode-cn.com/problems/longest-common-prefix/
Task03. 有效的括号
- 难度:简单
- 网址:https://leetcode-cn.com/problems/valid-parentheses/
Task04. 无重复字符的最长子串
- 难度:中等
- 网址:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/
Task05. 最长回文子串
- 难度:中等
- 网址:https://leetcode-cn.com/problems/longest-palindromic-substring/
Task06. 正则表达式匹配
- 难度:困难
- 网址:https://leetcode-cn.com/problems/regular-expression-matching/
知识点4:树
Task01. 相同的树
- 难度:简单
- 网址:https://leetcode-cn.com/problems/same-tree/
Task02. 对称二叉树
- 难度:简单
- 网址:https://leetcode-cn.com/problems/symmetric-tree/
Task03. 二叉树的最大深度
- 难度:简单
- 网址:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/
Task04. 二叉树的中序遍历
- 难度:中等
- 网址:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/
Task05. 不同的二叉搜索树 II
- 难度:中等
- 网址:https://leetcode-cn.com/problems/unique-binary-search-trees-ii/
Task06. 恢复二叉搜索树
- 难度:困难
- 网址:https://leetcode-cn.com/problems/recover-binary-search-tree/
知识点5:贪心算法
Task01. 买卖股票的最佳时机 II
- 难度:简单
- 网址:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/
Task02. 判断子序列
- 难度:简单
- 网址:https://leetcode-cn.com/problems/is-subsequence/
Task03. 分发饼干
- 难度:简单
- 网址:https://leetcode-cn.com/problems/assign-cookies/
Task04. 跳跃游戏
- 难度:中等
- 网址:https://leetcode-cn.com/problems/jump-game/
Task05. 加油站
- 难度:中等
- 网址:https://leetcode-cn.com/problems/gas-station/
Task06. 通配符匹配
- 难度:困难
- 网址:https://leetcode-cn.com/problems/wildcard-matching/
具体规则
- 注册 CSDN 或 Github 账户。
- 按照每天发布的任务进行学习,完成后写学习笔记Blog。
- 在每次任务截止之前填写问卷打卡,遇到问题在群内讨论。
- 未按时打卡的同学视为自动放弃,被抱出学习群。
总结
该活动,我们计划从 2020年03月01日 开始,如果大家对这个活动感兴趣可以添加小潘同学的微信,让她邀请大家入群。我们不见不散!
往期活动
LSGO软件技术团队会定期开展提升编程技能的刻意练习活动,希望大家能够参与进来一起刻意练习,一起学习进步!
- Python基础刻意练习活动即将开启,你参加吗?
- Task01:变量、运算符与数据类型
- Task02:条件与循环
- Task03:列表与元组
- Task04:字符串与序列
- Task05:函数与Lambda表达式
- Task06:字典与集合
- Task07:文件与文件系统
- Task08:异常处理
- Task09:else 与 with 语句
- Task10:类与对象
- Task11:魔法方法
- Task12:模块
我是 终身学习者“老马”,一个长期践行“结伴式学习”理念的 中年大叔。
我崇尚分享,渴望成长,于2010年创立了“LSGO软件技术团队”,并加入了国内著名的开源组织“Datawhale”,也是“Dre@mtech”、“智能机器人研究中心”和“大数据与哲学社会科学实验室”的一员。
愿我们一起学习,一起进步,相互陪伴,共同成长。
后台回复「搜搜搜」,随机获取电子资源!
欢迎关注,请扫描二维码: