分享

第02期 基础算法(Leetcode)刻意练习开营计划

 老马的程序人生 2020-08-17

背景

如果说 Java 是自动档轿车,C 就是手动档吉普。数据结构与算法呢?是变速箱的工作原理。你完全可以不知道变速箱怎样工作,就把自动档的车子从 A 开到 B,而且未必就比懂得的人慢。写程序这件事,和开车一样,经验可以起到很大作用,但如果你不知道底层是怎么工作的,就永远只能开车,既不会修车,也不能造车。如果你对这两件事都不感兴趣也就罢了,数据结构与算法懂得用就好。但若你此生在编程领域还有点更高的追求,数据结构与算法是绕不开的课题。

本期基础算法(Leetcode)刻意练习采用分类别练习的模式,即选择了五个知识点(数组、链表、字符串、树、贪心算法),每个知识点选择了 三个简单两个中等一个困难 等级的题目,共计三十道题,利用三十天的时间完成这组刻意练习。

为了让大家了解如何在CSDN打卡,以及如何在Leetcode上刷题,我在前面写了两篇图文可以参考一下。


知识点1:数组

Task01. 两数之和

  • 难度:简单

  • https:///problems/two-sum/

Task02. 删除排序数组中的重复项

  • 难度:简单

  • https:///problems/remove-duplicates-from-sorted-array/

Task03. 移除元素  

  • 难度:简单

  • https:///problems/remove-element/

Task04. 三数之和

  • 难度:中等

  • https:///problems/3sum/

Task05. 最接近的三数之和

  • 难度:中等

  • https:///problems/3sum-closest/

Task06. 买卖股票的最佳时机 III

  • 难度:困难

  • https:///problems/best-time-to-buy-and-sell-stock-iii/


知识点2:链表

Task01. 合并两个有序链表

  • 难度:简单

  • https:///problems/merge-two-sorted-lists/

Task02. 删除排序链表中的重复元素

  • 难度:简单

  • https:///problems/remove-duplicates-from-sorted-list/

Task03. 环形链表

  • 难度:简单

  • https:///problems/linked-list-cycle/

Task04. 两数相加

  • 难度:中等

  • https:///problems/add-two-numbers/

Task05. 删除链表的倒数第N个节点

  • 难度:中等

  • https:///problems/remove-nth-node-from-end-of-list/

Task06. 合并K个排序链表

  • 难度:困难

  • https:///problems/merge-k-sorted-lists/


知识点3:字符串

Task01. 罗马数字转整数

  • 难度:简单

  • https:///problems/roman-to-integer/

Task02. 最长公共前缀

  • 难度:简单

  • https:///problems/longest-common-prefix/

Task03. 有效的括号

  • 难度:简单

  • https:///problems/valid-parentheses/

Task04. 无重复字符的最长子串

  • 难度:中等

  • https:///problems/longest-substring-without-repeating-characters/

Task05. 最长回文子串

  • 难度:中等

  • https:///problems/longest-palindromic-substring/

Task06. 正则表达式匹配

  • 难度:困难

  • https:///problems/regular--matching/


知识点4:树

Task01. 相同的树

  • 难度:简单

  • https:///problems/same-tree/

Task02. 对称二叉树

  • 难度:简单

  • https:///problems/symmetric-tree/

Task03. 二叉树的最大深度

  • 难度:简单

  • https:///problems/maximum-depth-of-binary-tree/

Task04. 二叉树的中序遍历

  • 难度:中等

  • https:///problems/binary-tree-inorder-traversal/

Task05. 不同的二叉搜索树 II

  • 难度:中等

  • https:///problems/unique-binary-search-trees-ii/

Task06. 恢复二叉搜索树

  • 难度:困难

  • https:///problems/recover-binary-search-tree/


知识点5:贪心算法

Task01. 买卖股票的最佳时机 II

  • 难度:简单

  • https:///problems/best-time-to-buy-and-sell-stock-ii/

Task02. 判断子序列

  • 难度:简单

  • https:///problems/is-subsequence/

Task03. 分发饼干

  • 难度:简单

  • https:///problems/assign-cookies/

Task04. 跳跃游戏

  • 难度:中等

  • https:///problems/jump-game/

Task05. 加油站

  • 难度:中等

  • https:///problems/gas-station/

Task06. 通配符匹配

  • 难度:困难

  • https:///problems/wildcard-matching/


具体规则

  • 注册 CSDN 或 Github 账户。

  • 按照每天发布的任务进行学习,完成后写学习笔记Blog。

  • 在每次任务截止之前填写问卷打卡,遇到问题在群内讨论。

  • 未按时打卡的同学视为自动放弃,被抱出学习群。


总结

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多